الفنون رقم 035
الفنون رقم 035
الفنون 035
الخوارزمية
11. حاوية بها معظم الماء
الصعوبة: متوسطة
بالنظر إلى n الأعداد الصحيحة غير السالبة a<sub style=“display: inline;”>1</sub>, a<sub style=“display: inline;”>2</sub>, …, a<sub style=“display: inline;”>n </sub>، حيث يمثل كل منها نقطة في الإحداثي (i, a<sub style=“display: inline;”>i</sub>). n يتم رسم الخطوط العمودية بحيث تكون نقطتي نهاية السطر i عند (i, a<sub style=“display: inline;”>i</sub>) و (i, 0). ابحث عن خطين يشكلان مع المحور السيني حاوية، بحيث تحتوي الحاوية على أكبر قدر من الماء.
**ملاحظة: **لا يجوز لك إمالة الحاوية وأن تكون n على الأقل 2.

<small style=“display: inline;”>الخطوط الرأسية أعلاه ممثلة بمصفوفة [1,8,6,2,5,4,8,3,7]. في هذه الحالة، الحد الأقصى لمساحة الماء (القسم الأزرق) الذي يمكن أن تحتوي عليه الحاوية هو 49.</small>
مثال:
Input: [1,8,6,2,5,4,8,3,7]
Output: 49
الحل
اللغة: سويفت
قد يكون من الصعب على أي شخص أن يتخيل ما هو أفضل من أي وقت مضى هذا هو السبب في أن هذا هو ما يحدث في Leetcode.
class Solution {
func maxArea(_ height: [Int]) -> Int {
var maxArea = 0
for i in 0..<height.count {
let left = height[i]
for j in (i + 1)..<height.count {
let right = height[j]
let rightIndex = j
let tem = min(left, right) * (rightIndex - i)
maxArea = max(maxArea, tem)
}
}
return maxArea
}
}
看了别人的提示后،发现了O(N)时间复杂度的解决هذا هو السبب في أن هذا هو ما يحدث في المستقبل.
class Solution {
func maxArea(_ height: [Int]) -> Int {
var maxArea = 0
var left = 0
var right = height.count - 1
var leftValue = 0
var rightValue = 0
while left < right {
leftValue = height[left]
rightValue = height[right]
maxArea = max(maxArea, min(leftValue, rightValue) * (right - left))
if leftValue > rightValue {
right -= 1
}
else{
left += 1
}
}
return maxArea
}
}
مراجعة
عرض شركة 程序员如何وHR: https://dandan2009.github.io/2019/12/10/job-negotiation-for-programmers-the-basic-principles/
نصائح
-
Tips1: الاسم المستعار zsh 怎么加参数?
الاسم المستعار 我们知道可以简化命令،比如下面
alias ios='cd /Users/dan/Documents/wanan/ios/iv && pod install --no-repo-update && open iv.xcworkspace'شكرا جزيلا
iosلا داعي للقلق.
那么怎么 الاسم المستعار 命令怎么带参数呢,答案就是用函数.
deletefile() { rm -rf $1 echo rm -rf $1 } alias dele=deletefileقم بتنزيل الملف dele 2.txt،
rm -rf 2.txt echo rm -rf 2.txt -
نصائح 2: نظام التشغيل iOS يستخدم الرقم، رقم NSDecimalNumber
@property(nonatomic, strong) NSDecimalNumber* price;//< 单位:元接口返回是NSNumber类型،有些数字解析会有问题،比如实际数据是9. 8، AFN يرحب بالرقم 9.800000000000001، لا يوجد أي مشكلة،
تم إنشاء هذا الخيار بواسطة مجموعة NSDecimalNumberHandler.
- (void)setPrice:(NSDecimalNumber *)price{ NSDecimalNumberHandler *handler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO]; _price = [price decimalNumberByRoundingAccordingToBehavior:handler]; }; RoundingMode: NSRoundDown只舍不入 scale : 2 保留两位小数 -
نصائح 3: مفتاح Mac ssh
قم بإنشاء ~/.ssh. قم بإنشاء ملف config الخاص بك
تعليمات التكوين:
# github 的ssh-key Host github.com User xxxx@gmail.com PreferredAuthentications publickey IdentityFile ~/.ssh/github # coding.net的ssh-key Host gitlab.coding.net User xxxx@qq.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa
شارك
هل لديك 251 شخصًا؟
What to read next
Want more posts about ARTS?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home