11.【中等】回文数
文章发布较早,内容可能过时,阅读注意甄别。
# 题目来源:
(题目来源 (opens new window) " 11.【中等】回文数")
# 题目
给你 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
2
2
# 分析
本题可以用双指针来接,注意边界处理问题 最开始设置最左边界和最右边界之间的面积最大, 然后一直遍历,如归当前的面积比之前的面积大,就叫唤
# 题解
方法一
// @lc code=start
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let i = 0, j = height.length - 1;
let maxAreaVal = Math.min(height[i], height[j]) * (j - i)
while(i < j) {
let area = Math.min(height[i], height[j]) * (j - i)
if(area > maxAreaVal) maxAreaVal = area
height[i] < height[j] ? i ++ : j --
}
return maxAreaVal
};
// @lc code=end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
上次更新: 2024/03/07, 20:33:54