LeetCode随缘刷题之盛最多水的容器
2022/1/30 23:08:40
本文主要是介绍LeetCode随缘刷题之盛最多水的容器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package leetcode.day_01_30; /** * 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 * * 说明:你不能倾斜容器。 * * 示例 1: * * 输入:[1,8,6,2,5,4,8,3,7] * 输出:49 * 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。 * 示例 2: * * 输入:height = [1,1] * 输出:1 * 示例 3: * * 输入:height = [4,3,2,1,4] * 输出:16 * 示例 4: * * 输入:height = [1,2,1] * 输出:2 * * 提示: * * n == height.length * 2 <= n <= 105 * 0 <= height[i] <= 104 * * @author soberw * @Classname MaxArea0011 * @Description * @Date 2022-01-30 21:16 */ public class MaxArea0011 { // 超时 // public int maxArea(int[] height) { // int maxArea = 0; // for (int i = 0; i < height.length - 1; i++) { // for (int j = i + 1; j < height.length; j++) { // maxArea = Math.max(Math.min(height[i], height[j]) * (j - i), maxArea); // } // } // return maxArea; // } public int maxArea(int[] height) { int maxArea = 0; for (int i = 0, j = height.length - 1; i < j; ) { maxArea = Math.max(Math.min(height[i], height[j]) * (j - i), maxArea); if (height[i] < height[j]){ i++; }else { j--; } } return maxArea; } }
这篇关于LeetCode随缘刷题之盛最多水的容器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南