题解 | #盛水最多的容器#

盛水最多的容器

https://www.nowcoder.com/practice/3d8d6a8e516e4633a2244d2934e5aa47

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param height int整型一维数组 
     * @return int整型
     */
    func maxArea ( _ height: [Int]) -> Int {
// write code here
        if height.count < 2 {
            return 0
        }
        var left = 0
        var right = height.count - 1
        var max = 0
	  //双指针检索
        while left < right {
            let cur = min(height[left],height[right]) * (right - left)
            max = cur > max ? cur : max
            //x轴边长必然缩短,只需要关注y轴上,优先舍去较短的边
            if height[left] < height[right] {
                left += 1
            } else {
                right -= 1
            }
        }
        return max
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:26
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务