郭峰博客 郭峰博客
首页
LeetCode
  • Algorithm
GitHub (opens new window)

挥码天涯

以梦为马,挥码天涯
首页
LeetCode
  • Algorithm
GitHub (opens new window)
  • 1.【简单】两数之和
  • 7.【简单】整数反转
  • 9.【简单】回文数
  • 11.【中等】回文数
    • 题目来源:
    • 题目
    • 分析
    • 题解
  • 13.【简单】罗马数字转整数
  • 14.【简单】最长公共前缀
  • 15.【中等】三数之和
  • 19.【中等】删除链表的倒数第N个节点
  • 20.【简单】有效的括号
  • 21.【简单】合并两个有序链表
  • 26.【简单】排除数组中的重复项
  • 27.【简单】移除元素
  • 28.【简单】实现strStr
  • 35.【简单】搜索插入位置
  • 51. 【困难】数组中的逆序对.md
  • 58.【简单】最后一个单词的长度
  • 57.【中等】颜色分类
  • 100.【简单】相同的树
  • 168.【简单】缺失数字
  • 175.【简单】组合两表
  • 176.【简单】第二高的薪水.md
  • 176.【中等】第二高的薪水.md
  • 206.【简单】反转链表
  • 215.【中等】数组中的第K个最大元素
  • 875.【中等】爱吃香蕉的珂珂
  • LeetCode
feng.guo
2020-08-02
目录

11.【中等】回文数

文章发布较早,内容可能过时,阅读注意甄别。

# 题目来源:

(题目来源 (opens new window) " 11.【中等】回文数")

# 题目

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

说明:你不能倾斜容器,且 n 的值至少为 2。

question_11

输入:[1,8,6,2,5,4,8,3,7]
输出:49
1
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
微信 支付宝
#数学
上次更新: 2024/03/07, 20:33:54

← 9.【简单】回文数 13.【简单】罗马数字转整数→

最近更新
01
2.实现一个Stack
10-30
02
01.实现一个链表结构
10-30
03
博客导引
02-13
更多文章>
Theme by Vdoing | Copyright © 2023-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式