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

盛水最多的容器

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

应该使用什么类型的双指针解决此题?

  • 容器的容积和最短边长和底边长有关,要求最大的容积,可以用贪心的思想,即让底边长尽可能大,以及左右边长尽可能大。
  • 要使左右边长尽可能大,则应该使用对撞指针,即初始时左右指针指向首尾,要使最短边长尽可能大,则左右指针应该是边长小的一边移动,因为贪心思想下较长的一边比较短的一边更可能出现更大容积,移动过程更新最大容积。

参考

https://blog.nowcoder.net/n/48d8b18532324e60817a9a8db21b376d?f=comment

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param height int整型一维数组 
 * @return int整型
 */
export function maxArea(height: number[]): number {
    // write code here
    let maxVolume = 0;
    let left = 0;
    let right = height.length-1;

    while (left < right) {
        maxVolume = Math.max(maxVolume, Math.min(height[left], height[right])*(right-left));
        height[left] <= height[right] ? ++left : --right;
    }

    return maxVolume;
}

全部评论

相关推荐

萧索X:写篮球联赛干嘛,陪老板打篮球吗。还有实习经历要写自己所在岗位具体完成什么工作,自己的任务具体完成了什么需求,给公司带来了哪些量化增长
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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