![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
徐步小兵
这个作者很懒,什么都没留下…
展开
-
LeetCode 283移动零
LeetCode 283移动零Easy题目简述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。输入:[0,1,0,3,12] 输出:[1,3,12,0,0]思路:双指针两次遍历(覆盖)重新定义用于下标刷新原数组,将非0值按顺序加入数组,最后根据下标值与原始数组长度差值加入0值class Solution {public: void moveZeroes(vecto原创 2020-06-25 17:56:44 · 153 阅读 · 0 评论 -
LeetCode 696计数二进制子串
LeetCode 696计数二进制子串Easy题目简述:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。s.length 在1到50,000之间。s 只包含“0”或“1”字符。题目本质: 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数输入:“00110011” 输出:6 解释:有6个子串:01,10,01,0011,1100,0011它们具有相同数量的原创 2020-06-25 17:14:00 · 162 阅读 · 0 评论 -
LeetCode 647回文子串
LeetCode 647回文子串Medium题目简述:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。输入的字符串长度不会超过1000。输入:“abc” 输出:3 解释:三个回文子串: “a”, “b”, “c”.输入:“aaa” 输出:6 解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.思路:中心扩展法O(n2)遍历字符串每次固定回文子串原创 2020-06-25 17:13:14 · 164 阅读 · 0 评论 -
LeetCode 205同构字符串
LeetCode 205同构字符串Easy题目简述:给定两个字符串 s和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。假设 s 和 t 具有相同的长度。输入:s = “egg”, t = “add” 输出:true输入:s = “foo”, t = “bar” 输出:false输入:s = “paper”原创 2020-06-25 17:11:42 · 306 阅读 · 0 评论 -
LeetCode 409最长回文串
LeetCode 409最长回文串Easy题目简述:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。输入:“abccccdd” 输出:7 解释:构造的最长的回文串是"dccaccd", 它的长度是 7。思路:回文串允许中间的字符单独出现。用哈希表统计每个字符以及出现的次数,如果出现偶数次,则统计累加该次数;如果出现奇数次,则统计累加该次数减1次,并标记中心位。时间复杂度O(n)class原创 2020-06-25 17:09:40 · 217 阅读 · 0 评论 -
LeetCode242有效的字母异位词
LeetCode242有效的字母异位词Easy题目简述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。输入: s = “anagram”, t = “nagaram” 输出:true输入: s = “rat”, t = “car” 输出:false思路:题目本质是判断两个字符串包含的字符是否完全相同利用哈希表存储出现的字符和对应出现的次数,分别遍历两个字符串,对于 s 往哈希表中增加相应字母的原创 2020-06-25 17:08:51 · 131 阅读 · 0 评论 -
LeetCode 67二进制求和
LeetCode 67二进制求和Easy题目简述:给两个二进制字符串,返回它们的二进制和。输入为 非空 字符串且只包含数字 1 和 0。输入:a = “11”, b = “1” 输出:“100”输入:a = “1010”, b = “1011” 输出:“10101”思路:与十进制加法相同,两数相加,模拟竖式加法过程从低位到高位(字符串从后往前)逐位相加,如果和大于2,则保留个位数字,同时向前进位1要保证两个数的位数相同,若位数不同,短数最高位用0补足如果最高位有进位,则原创 2020-06-25 17:06:58 · 132 阅读 · 0 评论 -
LeetCode 901股票价格跨度
LeetCode 901股票价格跨度Medium题目简述:编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。输入:[“StockSpanner”,“next”,“next”,“next”,“next”,原创 2020-06-24 19:24:02 · 204 阅读 · 0 评论 -
LeetCode 84柱状图中最大矩形
LeetCode 84柱状图中最大矩形Hard题目简述:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。输入:heights = [2,1,5,6,2,3] 输出:10思路:单调栈O(n)找到每个柱子左边和右边离自己最近的比自己低的柱子,夹在中间的矩形面积就为所求,然后用矩形宽度乘以当前柱子高度作为备选答案。即找两边第一个小于它的值维护单调栈,如果当前元素下标i对应的柱子高度比栈顶元素对应原创 2020-06-24 18:33:51 · 391 阅读 · 0 评论 -
LeetCode 739每日温度
LeetCode 739每日温度Medium题目简述:请根据每日 气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。输入:temperatures = [73, 74, 75, 71, 69, 72, 76, 73] 输出:[1, 1, 4, 2, 1, 1, 0, 0]思路:利用递减单调栈找到右边大于栈顶的元素,弹出栈顶直到满足单调递减,同时记录弹出元素与当前i的距离,保存在res数组中即是答案。原创 2020-06-24 18:30:07 · 331 阅读 · 0 评论 -
LeetCode 503下一个更大元素II
LeetCode 503下一个更大元素IIMedium题目简述:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。输入:[1,2,1] 输出:[2,-1,2] 解释:第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2原创 2020-06-24 18:28:46 · 128 阅读 · 0 评论 -
LeetCode 496下一个更大元素I
LeetCode 496下一个更大元素IEasy题目简述:给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。输入:nums1 = [4,1,2], nums2 = [1,3,4,2]. 输出:[-1,3,-1]输入:nums1 =原创 2020-06-24 18:27:53 · 148 阅读 · 0 评论 -
LeetCode 232用栈实现队列
LeetCode 232用栈实现队列Easy题目简述:使用栈实现队列的下列操作push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。思路:入队实现:无条件将新元素加入栈A出队实现:判断栈B是否为空,如果为空,则将栈A中所有元素push进栈B;如果栈B不为空,栈B直接出栈。class MyQueue {public: /** Initialize your dat原创 2020-06-23 12:03:03 · 140 阅读 · 0 评论 -
LeetCode 225用队列实现栈
LeetCode 225用队列实现栈Easy题目简述:使用队列实现栈的下列操作push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空思路:双队列实现栈入栈实现:无条件将新元素加入队列A出栈实现:判断队列A中元素的个数是否为1,如果等于1,则出队列,否则将队列A中的元素依次出队列并放入队列B,直到队列A中的元素留下一个,然后队列A出队列,再把队列B中的元素出队列依次放入队列A中。循环往复。class MyS原创 2020-06-23 12:02:23 · 159 阅读 · 0 评论 -
LeetCode 725分隔链表
LeetCode 725分隔链表Medium题目简述:给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。**这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。**返回一个符合上述规则的链表的列表。root 的长度范围: [0, 1000].输入的每个节点的大小范围:[0, 999].k 的取值范围: [1, 50].原创 2020-06-22 15:58:52 · 181 阅读 · 0 评论 -
LeetCode 445两数相加II
LeetCode 445两数相加IIMedium题目简述:给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 8 -> 0 -> 7思路:反转链表后从低位到高位依次相加,最后再反转新求和链表并返回结果/** * Defi原创 2020-06-22 15:03:14 · 120 阅读 · 0 评论 -
LeetCode 328奇偶链表
LeetCode 328奇偶链表Medium题目简述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。应当保持奇数节点和偶数节点的相对顺序。链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。输入:1->2->3->4->5->NULL原创 2020-06-21 12:02:28 · 158 阅读 · 0 评论 -
LeetCode 24两两交换链表中的节点
LeetCode 24两两交换链表中的节点Easy题目简述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。输入:1->2->3->4 输出:2->1->4->3思路:迭代画图理解 p -> a -> b -> c创建虚拟头节点dummy,交换a、b节点的过程,首先将p的下一个指向b,其次a的下一个指向b的下一个,然后b的下一个指向a,最后将p的位置向原创 2020-06-21 12:01:50 · 143 阅读 · 0 评论 -
LeetCode 83删除排序链表中的重复元素
LeetCode 83删除排序链表中的重复元素Easy题目简述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。输入: 1->1->2 输出:1->2输入:1->1->2->3->3 输出:1->2->3思路:从前往后扫描整个链表,如果一个节点和其后继节点相同,则直接删除后继节点,否则指针移动到后继节点。/** * Definition for sing原创 2020-06-21 12:00:42 · 111 阅读 · 0 评论 -
LeetCode 160相交链表
LeetCode 160相交链表Easy题目简述:编写一个程序,找到两个单链表相交的起始节点。如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。输入:listA = [4,1,8,4,5] listB = [5,0,1,8,4,5] 输出:8输入:listA = [0,9,1,2,4] listB = [3,2,4] 输出原创 2020-06-20 16:26:29 · 112 阅读 · 0 评论 -
LeetCode 128最长连续序列
LeetCode 128最长连续序列Hard题目简述:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。输入:[100, 4, 200, 1, 3, 2] 输出:4 解释:最长连续序列是 [1, 2, 3, 4]思路:双指针算法首先对未排序的数组进行排序,并将双指针都指向开始位置只要r指向的数字等于r-1指向的数字或者比r-1指向的数字大1,那么r指针就向右移动扩大窗口,在移动过程中,当r指向的数字等于r-1指向的数字时,长度不变;当r指向的数字大r-1原创 2020-06-20 15:26:40 · 138 阅读 · 0 评论 -
LeetCode 594最长和谐子序列
LeetCode 594最长和谐子序列Easy题目简述:和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。输入:[1,3,2,2,5,2,3,7] 输出:5 解释:最长的和谐数组是:[3,2,2,2,3].思路:先用哈希表存储每个数字出现的次数,然后对于哈希表里面的每个键,查看是否存在(该键+1),如果存在,计算该和谐子序列是否为最长的序列。class Solution {public: int原创 2020-06-19 15:52:10 · 196 阅读 · 0 评论 -
LeetCode 217存在重复元素
LeetCode 217存在重复元素题目简述:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。输入:[1,2,3,1] 输出:true输入:[1,2,3,4] 输出:false思路:哈希表存储遍历到的每个数组元素并记录其出现次数class Solution {public: bool containsDuplicate(vector<int&g原创 2020-06-19 15:13:54 · 192 阅读 · 0 评论 -
LeetCode 1277统计全为1的正方形矩阵
LeetCode 1277统计全为1的正方形矩阵题目简述:给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。1 <= arr.length <= 3001 <= arr[0].length <= 3000 <= arr[i][j] <= 1示例:输入:[011111110111]\left[\begin{matrix}0 & 1 & 1 & 1 \\1原创 2020-06-18 14:00:31 · 334 阅读 · 0 评论 -
LeetCode 221最大正方形
LeetCode 221最大正方形题目简述:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:[10100101111111110010]\left[\begin{matrix}1 & 0 & 1 & 0 & 0 \\1 & 0 & 1 & 1 & 1 \\1 & 1 & 1 & 1 & 1\\1 & 0 & 0 & 1 &am原创 2020-06-18 13:59:16 · 187 阅读 · 0 评论 -
LeetCode 118杨辉三角
LeetCode 118杨辉三角题目简述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。输入:5 输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]思路:递推,时间复杂度O(n2)定义答案,用第一行的1初始化,然后从上倒下依次计算每一行首先将要计算的当前每一行首部的1单独加入数组,然后依次利用上一行的数组计算中间的数原创 2020-06-17 23:11:42 · 137 阅读 · 0 评论 -
LeetCode 300最长上升子序列
LeetCode 300最长上升子序列题目简述:给定一个无序的整数数组,找到其中最长上升子序列的长度。输入:[10,9,2,5,3,7,101,18] 输入:4 解释:最长的上升子序列是 [2,3,7,101],它的长度是 4。思路:动态规划状态表示:f[i]表示所有以i结尾的上升子序列状态属性:上升子序列的长度最大值状态计算:最后一个数都是第i个数,倒数第二个数为分类依据,可以分成i类,按照倒数第二个数分别依次是null、0、1、2......i-1分类,再求倒数第二个数原创 2020-06-17 22:22:50 · 168 阅读 · 0 评论 -
LeetCode 198打家劫舍
LeetCode 198打家劫舍题目简述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。0 <= nums.length <= 1000 <= nums[i] <= 400输入:[1,2,3,1] 输出:4 解原创 2020-06-15 17:08:07 · 165 阅读 · 0 评论 -
LeetCode 746使用最小花费爬楼梯
LeetCode 746使用最小花费爬楼梯题目简述:数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。cost 的长度将会在 [2, 1000]。每一个 cost[i] 将会是一个Integer类型,范围为 [0, 999]。输入:cost = [10,原创 2020-06-15 17:04:42 · 156 阅读 · 0 评论 -
LeetCode 70爬楼梯
LeetCode 70爬楼梯题目简述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?输入:3 输出:3 解释:1 + 1 +1 ; 1 + 2; 2 + 1思路:找规律如下0 1 2 3 5 8 … f(n) 倒退得:f(n) = f(n-1) + f(n-2) n>=3时f(n)往回跳实现有两种情况可以跳一级f(n-1),还可以跳f(n-2),所以通式如上。递归写法:适用于数量级原创 2020-06-15 12:06:11 · 90 阅读 · 0 评论 -
LeetCode 64最小路径和
LeetCode 64最小路径和题目简述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:[131151421]\left[\begin{matrix}1 & 3 & 1 \\1 & 5 & 1 \\4 & 2 & 1\end{matrix} \right]⎣⎡114352111⎦⎤输出:7 解释:路径 1→3→1→1→1 的总和最小思路:动态规划O(n原创 2020-06-15 11:39:44 · 188 阅读 · 0 评论 -
LeetCode 62不同路径
LeetCode 62不同路径题目简述:一个机器人位于一个 m x n 网格的左上角 ,机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?注意:1 <= m, n <= 100输入:m = 3, n = 2(3列2行) 输出:3 解释:右右下、右下右、下右右输入:m = 7, n = 3(7列3行) 输出:28思路:递推当前的网格状态都是由左边或者上边转移过来的,到达某一点的路径等于它上一点的路径数和它左边点的路径数之原创 2020-06-10 11:50:01 · 115 阅读 · 1 评论 -
LeetCode 53最大子序和
LeetCode 53最大子序和题目简述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:[-2,1,-3,4,-1,2,1,-5,4] 输出: 6思路:动态规划O(n)首先对数组进行遍历,当前最大连续子序列和为 sum,结果为 ans如果 sum > 0,则说明 sum 对结果有增益效果,则 sum 保留并加上当前遍历数字如果 sum <= 0,则说明 sum 对结果无增益效果,需要舍弃,则 sum 直接更新为当原创 2020-06-10 10:53:37 · 85 阅读 · 0 评论 -
LeetCode 5最长回文子串
LeetCode 5最长回文子串题目简述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。输入:“babad” 输出:“bab”输入:“cbbd” 输出:“bb”思路:枚举字符串的每一个字符依次作为回文串的中心点,从中心点开始向两边扩散,移动过程中对比中心点左右两个字符是否相同或者是否出界,返回回文串的最长长度当回文子串是奇数时,从i - 1,i + 1开始往两边扩散当回文子串是偶数时,从i,i + 1开始往两边扩散以i为原创 2020-06-10 10:52:25 · 108 阅读 · 0 评论 -
LeetCode 10正则表达式匹配
LeetCode 10正则表达式匹配题目简述:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.'匹配任意单个字符,'*' 匹配零个或多个前面的那一个元素。所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。输入:s = “aa” p = “a*” 输出:true输入:s = “ab” p = “.*” 输出:true输入:s = “aab” p = “c*a*b” 输出:true输入:s = “原创 2020-06-09 18:07:56 · 199 阅读 · 0 评论 -
LeetCode 22括号生成
LeetCode 22括号生成题目简述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]思路:暴力枚举所有括号,生成所有的括号序列,然后用栈逐个检查合法性。class Solution {public: vector<string> res; vector<string> gener原创 2020-06-08 17:49:38 · 181 阅读 · 0 评论 -
LeetCode 47全排列II
LeetCode 47全排列II题目简述:给定一个可包含重复数字的序列,返回所有不重复的全排列。输入:[1, 1, 2]输出:[ [1,1,2], [1,2,1], [2,1,1]]思路:DFS + 回溯 + 剪枝在一定会产生重复结果集的地方剪枝。产生重复结点的地方,正是图中标注了“剪刀”,且被绿色框框住的地方。搜索过程只要遇到起点一样,就有可能产生重复。在图中 ② 处,搜索的数也和上一次一样,但是上一次的 1 还在使用中;在图中 ① 处,搜索的数也和上一次一样,但是上原创 2020-06-08 16:12:17 · 522 阅读 · 0 评论 -
LeetCode 46全排列
LeetCode 46全排列题目简述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。输入:[1, 2, 3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]思路一:利用STL的全排列函数实现bool next_permutation(iterator start,iterator end)当前序列不存在下一个排列时,函数返回false,否则返回trueclass Solution {public:原创 2020-06-08 11:30:43 · 191 阅读 · 0 评论 -
LeetCode 23合并K个排序列表
LeetCode 23合并K个排序列表题目简述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:[1->4->5, 1->3->4, 2->6] 输出: 1->1->2->3->4->4->5->6思路一:使用优先队列,先将每个排序链表的头节点加入优先队列,每次将堆顶元素弹出加入新链表,并将堆顶后驱节点加入优先队列,循环直到优先队列为空空间复杂度 O(k),时间原创 2020-06-07 11:35:43 · 122 阅读 · 0 评论 -
LeetCode 154寻找旋转排序数组中的最小值II
LeetCode 154寻找旋转排序数组中的最小值II题目简述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2])。请找出其中最小的元素。你可以假设数组中存在重复元素。输入:[1, 3, 5] 输出:1输入:[2, 2, 2, 0, 1, 1, 2] 输出:0思路:有重复元素的排序数组旋转后,会分成两段有序序列,最小值前面的数nums[i]都满足nums[i] >= nums原创 2020-06-06 11:11:11 · 130 阅读 · 0 评论