We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例:
输入:[1,8,6,2,5,4,8,3,7] 输出:49
使用双指针的方法,初始时,left指向最左边,right指向最右边,每次移动 对应数字比较小的指针,�容纳的水量为 两个指针指向的数字中较小值∗指针之间的距离
两个指针指向的数字中较小值∗指针之间的距离
/** * @param {number[]} height * @return {number} */ var maxArea = function(height) { // 在初始时,左右指针分别指向数组的左右两端 let l = 0; let r = height.length - 1; let maxArea = 0; while(l < r) { // 容纳的水量为 两个指针指向的数字中较小值∗指针之间的距离 maxArea = Math.max(maxArea, (r - l) * Math.min(height[r], height[l])); // 移动对应数字较小的那个指针 if(height[r] >= height[l]) { l++; } else { r--; } } return maxArea };
The text was updated successfully, but these errors were encountered:
No branches or pull requests
题目描述
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例:
思路
使用双指针的方法,初始时,left指向最左边,right指向最右边,每次移动 对应数字比较小的指针,�容纳的水量为
两个指针指向的数字中较小值∗指针之间的距离
参考
The text was updated successfully, but these errors were encountered: