C++装最多水的容器问题怎么解决


这篇文章主要讲解了“C++装最多水的容器问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++装最多水的容器问题怎么解决”吧!Givennnon-negative integersa1,a2, …,an, where each represents a point at coordinate (i,ai).nvertical lines are drawn such that the two endpoints of lineiis at (i,ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.Note:You may not slant the container andnis at least 2.The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can containis 49.Example:Input: [1,8,6,2,5,4,8,3,7]
Output: 49这道求装最多水的容器的题和那道Trapping Rain Water很类似,但又有些不同,那道题让求整个能收集雨水的量,这道只是让求最大的一个的装水量,而且还有一点不同的是,那道题容器边缘不能算在里面,而这道题却可以算,相比较来说还是这道题容易一些,这里需要定义i和j两个指针分别指向数组的左右两端,然后两个指针向中间搜索,每移动一次算一个值和结果比较取较大的,容器装水量的免费云主机域名算法是找出左右两个边缘中较小的那个乘以两边缘的距离,代码如下:C++ 解法一:Java 解法一:这里需要注意的是,由于 Java 中的三元运算符 A?B:C 必须须要有返回值,所以只能用 if..else.. 来替换,不知道 Java 对于三元运算符这么严格的限制的原因是什么。下面这种方法是对上面的方法进行了小幅度的优化,对于相同的高度们直接移动i和j就行了,不再进行计算容量了,参见代码如下:C++ 解法二:Java 解法二:感谢各位的阅读,以上就是“C++装最多水的容器问题怎么解决”的内容了,经过本文的学习后,相信大家对C++装最多水的容器问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Java ReentrantReadWriteLock读写锁如何实现

这篇文章主要介绍了JavaReentrantReadWriteLock读写锁如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaReentrantReadWriteLock读写锁如何实现文章都会有所收获,下面我们一起来看…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/12 14:57
下一篇 02/12 15:11

相关推荐