题目
思路
维护两个index,从两边缩小到中间,谁矮谁被缩小,每次缩小重新计算ans
代码
class Solution {
func maxArea(height: Array<Int64>): Int64 {
var indexA = 0
var indexB = height.size - 1
var ans = 0
while(indexA != indexB){
var width = indexB - indexA
var heigh = min(height[indexA], height[indexB])
if(height[indexA] < height[indexB]){
indexA++
}
else{
indexB--
}
var water = width * heigh
if(water > ans){
ans = water
}
}
return ans
}
}
复杂度
时间O(n)
空间O(1)
遇到的坑
\
结果
仓颉薄纱C
cangjie