leetcode
文章平均质量分 58
遇见你之前.
岁月悠悠,衰微只及肌肤;热忱抛却,颓废必致灵魂
展开
-
剑指 Offer 62. 圆圈中最后剩下的数字 (约瑟夫环)
LeetCode - 剑指 Offer 62. 圆圈中最后剩下的数字题目描述解题分析code总结参考题解 by leetcode- Vancomycin题目描述难度:简单0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n =原创 2022-01-20 14:58:44 · 577 阅读 · 0 评论 -
55. 跳跃游戏 (Java解题 贪心思想)
LeetCode - 55. 跳跃游戏题目描述解题分析code总结题目描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为原创 2021-11-03 11:26:32 · 159 阅读 · 0 评论 -
260. 只出现一次的数字 III (Java解题 高效位运算)
LeetCode - 260. 只出现一次的数字 III题目描述解题分析code总结题目描述给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:原创 2021-10-30 10:59:20 · 103 阅读 · 0 评论 -
12. 整数转罗马数字 (Java解题 贪心思想)
LeetCode - 12. 整数转罗马数字题目描述解题分析code总结题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为原创 2021-10-26 10:37:27 · 180 阅读 · 0 评论 -
240. 搜索二维矩阵 II (Java解题 简单高效)
LeetCode - 240. 搜索二维矩阵 II题目描述解题分析解题code总结题目描述难度:中等编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15], [2,5,8,12,19], [3,6,9,16,22], [10,13,14,17,24], [18,21,原创 2021-10-25 09:10:16 · 203 阅读 · 0 评论 -
19. 删除链表的倒数第 N 个结点 (Java解题 递归 & 双指针) ( 1024 快乐加倍!)
LeetCode - 19. 删除链表的倒数第 N 个结点题目描述解题分析题目描述难度:中等给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <=原创 2021-10-24 17:27:25 · 2246 阅读 · 0 评论 -
492. 构造矩形 (Java解题 简单高效)
LeetCode - 66. 加一题目描述解题分析解题代码总结题目描述难度:简单作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:你设计的矩形页面必须等于给定的目标面积。宽度 W 不应大于长度 L,换言之,要求 L >= W 。长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。示例:输入: 4输原创 2021-10-23 09:48:15 · 439 阅读 · 0 评论 -
66. 加一 (Java解题 简单高效)
LeetCode - 66. 加一题目描述题解分析解题代码总结题目描述难度:简单给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示原创 2021-10-21 08:39:58 · 70 阅读 · 0 评论 -
剑指 Offer 59 - I. 滑动窗口的最大值 (Java解题 单调队列)
LeetCode - 剑指 Offer 59 - I. 滑动窗口的最大值题目描述题解分析解题代码总结题目描述难度:困难给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3原创 2021-10-20 18:48:42 · 226 阅读 · 0 评论 -
5. 最长回文子串 ( Java解题 动态规划 )
LeetCode - 5. 最长回文子串题目描述题解分析解题代码总结题目描述难度:中等给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)原创 2021-10-17 10:35:24 · 320 阅读 · 1 评论 -
230. 二叉搜索树中第K小的元素 (Java解题 中序遍历)
LeetCode - 230. 二叉搜索树中第K小的元素题目描述题解分析解题代码总结题目描述难度:中等给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n 。1 <= k <= n <=原创 2021-10-17 10:03:19 · 200 阅读 · 0 评论 -
38. 外观数列 ( Java解题 动态规划+双指针迭代)
LeetCode - 38. 外观数列题目描述题解分析题目描述难度:中等给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 1211原创 2021-10-15 12:44:53 · 127 阅读 · 0 评论 -
剑指 Offer II 044. 二叉树每层的最大值 ( Java解题 - 层序遍历 )
LeetCode - 剑指 Offer II 044. 二叉树每层的最大值题目描述题解分析解题代码总结题目描述难度:中等给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。示例1:输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]解释: 1 / \ 3 2 / \ \ 5 3 9 示例2:输入: root = [1,2,3]输出: [1,3原创 2021-10-14 15:35:07 · 408 阅读 · 0 评论 -
496. 下一个更大元素 I (Java 通俗易懂)
LeetCode - 496. 下一个更大元素 I题目描述题解分析解题代码总结题目描述难度:简单给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2]原创 2021-10-09 10:13:13 · 227 阅读 · 0 评论 -
187. 重复的DNA序列 (Java题解 通俗易懂)
LeetCode - 187. 重复的DNA序列题目描述题解分析解题代码总结题目描述难度:中等所有 DNA 都由一系列缩写为 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACC原创 2021-10-08 17:41:10 · 579 阅读 · 0 评论 -
434. 字符串中的单词数
LeetCode - 434. 字符串中的单词数题目描述题解分析总结题目描述难度:简单统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。题解分析本题其实就是按照空格分割字符串,我们可以使用 String 自带的 split() 方法分割字符串;这里提供另外一种方式原创 2021-10-07 11:09:21 · 58 阅读 · 0 评论 -
284. 顶端迭代器
LeetCode - 284. 顶端迭代器题目描述题解分析总结题目描述难度:中等请你设计一个迭代器,除了支持 hasNext 和 next 操作外,还支持 peek 操作。实现 PeekingIterator 类:PeekingIterator(int[] nums) 使用指定整数数组 nums 初始化迭代器。int next() 返回数组中的下一个元素,并将指针移动到下个元素处。bool hasNext() 如果数组中存在下一个元素,返回 true ;否则,返回 false 。int p原创 2021-10-05 12:43:16 · 115 阅读 · 0 评论 -
1436. 旅行终点站(国庆快乐)
LeetCode - 1436. 旅行终点站题目描述题解分析解题代码总结题目描述难度:简单给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。示例 1:输入:paths = [["London","New York"],["Ne原创 2021-10-01 21:45:18 · 79 阅读 · 0 评论 -
223. 矩形面积
LeetCode - 223. 矩形面积题目描述题解分析解题代码总结题目描述难度:中等给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。示例 1:输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 =原创 2021-09-30 09:27:08 · 314 阅读 · 0 评论 -
剑指 Offer 13. 机器人的运动范围
LeetCode - 剑指 Offer 13. 机器人的运动范围题目描述分析代码总结题目描述难度:中等地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少原创 2021-09-29 19:06:52 · 55 阅读 · 0 评论 -
剑指 Offer 47. 礼物的最大价值
LeetCode - 剑指 Offer 47. 礼物的最大价值题目描述分析代码总结题目描述难度:中等在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值原创 2021-09-26 18:54:45 · 141 阅读 · 0 评论 -
430. 扁平化多级双向链表
LeetCode - 430. 扁平化多级双向链表题目描述分析代码总结题目描述难度:中等多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例 1:输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出:[原创 2021-09-24 17:05:24 · 118 阅读 · 0 评论 -
322. 零钱兑换 (动态规划)
LeetCode - 322. 零钱兑换题目描述分析总结题目描述难度:中等给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3原创 2021-09-23 21:05:10 · 113 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
LeetCode - 剑指 Offer 10- II. 青蛙跳台阶问题题目描述分析总结题目描述难度:简单一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100分析仔细分析就会原创 2021-09-22 16:30:17 · 60 阅读 · 0 评论 -
58. 最后一个单词的长度(中秋快乐)
LeetCode - 58. 最后一个单词的长度题目描述分析总结题目描述难度:简单给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = "luffy is still joyboy"输出:6提示:1 &原创 2021-09-21 17:13:19 · 64 阅读 · 0 评论 -
300. 最长递增子序列
LeetCode - 300. 最长递增子序列题目描述分析总结题目描述难度:中等给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,原创 2021-09-21 10:53:16 · 87 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
LeetCode - 剑指 Offer 11. 旋转数组的最小数字题目描述分析总结题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0分析读题,一个递增数组旋转,那么可知,原本数组中的第一个元素(最小的元素)跑到了数组原创 2021-09-19 21:52:38 · 110 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
LeetCode - 剑指 Offer 10- I. 斐波那契数列题目描述分析总结题目描述难度:简单写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:10000000原创 2021-09-19 21:24:47 · 91 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
LeetCode - 剑指 Offer 06. 从尾到头打印链表题目描述分析总结题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000链表节点代码:class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}分析第一种方式是原创 2021-09-18 23:40:07 · 57 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
LeetCode - 剑指 Offer 09. 用两个栈实现队列题目描述分析总结题目描述难度:简单用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,原创 2021-09-18 23:30:56 · 56 阅读 · 0 评论 -
292. Nim 游戏
LeetCode - 292. Nim 游戏题目描述分析总结题目描述难度:简单你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false示例 1:输入:n = 4输出:false 解释:如果堆中有 4 块石头,那么你永远不会原创 2021-09-18 21:25:40 · 117 阅读 · 0 评论 -
36.有效的数独
LeetCode - 36. 有效的数独题目描述分析总结题目描述难度:中等请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。示例 1:原创 2021-09-18 01:30:08 · 98 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
LeetCode - 剑指 Offer 05. 替换空格题目描述分析总结题目描述难度:简单请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000分析最开始用的 String 类的 replaceAll 方法,慢的飞起,String 类对象的每一次操作都会创建新的对象,而不会修改原对象;后来换成了遍历字符串 s,利用 Str原创 2021-09-17 23:15:24 · 38 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
LeetCode - 剑指 Offer 04. 二维数组中的查找题目描述分析总结题目描述难度:中等在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14原创 2021-09-17 11:43:55 · 59 阅读 · 0 评论 -
剑指 Offer 03.数组中重复的数字
LeetCode - 剑指 Offer 03.数组中重复的数字题目描述分析总结题目描述难度:简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000分析查重题可以使用 set 集合或者哈希表来完成。将原创 2021-09-17 11:19:19 · 56 阅读 · 0 评论 -
162. 寻找峰值
LeetCode - 162. 寻找峰值题目描述分析总结题目描述难度:中等峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入原创 2021-09-15 22:19:22 · 78 阅读 · 0 评论 -
524. 通过删除字母匹配到字典里最长单词
LeetCode - 524. 通过删除字母匹配到字典里最长单词题目描述分析总结题目描述难度:中等给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]输出:"apple"示例 2:原创 2021-09-14 19:57:07 · 91 阅读 · 0 评论 -
面试题 16.02. 单词频率
LeetCode - 面试题 16.02. 单词频率题目描述分析总结题目描述难度:中等设计一个方法,找出任意指定单词在一本书中的出现频率。你的实现应该支持如下操作:WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率示例:WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", "he", "have", "a", "原创 2021-09-13 22:12:13 · 47 阅读 · 0 评论 -
678. 有效的括号字符串
LeetCode - 678. 有效的括号字符串题目描述分析总结题目描述难度:中等给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 ( 必须有相应的右括号 )。任何右括号 ) 必须有相应的左括号 ( 。左括号 ( 必须在对应的右括号之前 )。可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: "()"输出: True示例 2:输入:原创 2021-09-12 22:54:54 · 124 阅读 · 0 评论 -
1051. 高度检查器
LeetCode - 1051. 高度检查器题目描述分析总结题目描述难度:简单学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。给你一个整数数组 heights ,表示 当前学生站位 的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。返回满足 heights[i] != expe原创 2021-09-11 21:00:57 · 219 阅读 · 0 评论