![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetode刷题系列
Jackybored
迷茫的研究生
展开
-
leetcode685
刷题主页在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。输入一个有向图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。 每一个边 的元素是一对 [u, v],用以表示有向图中连接顶点 u 和顶点 v 的边,其中 u 是 v 的一个父节点。返回一条能删除的边,使得剩下原创 2020-09-17 20:31:55 · 370 阅读 · 0 评论 -
leetcode684
刷题主页在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式 u <原创 2020-09-17 19:56:44 · 233 阅读 · 0 评论 -
leetcode220
刷题主页在整数数组 nums 中,是否存在两个下标 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值小于等于 t ,且满足 i 和 j 的差的绝对值也小于等于 ķ 。如果存在则返回 true,不存在返回 false。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例 3:输入: nums = [1,5,9,1,5,9], k原创 2020-09-02 20:07:35 · 371 阅读 · 0 评论 -
leetcode5490
刷题主页> 厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 10 个橘子。第 1 天:吃 1 个橘子,剩余橘子数 10 - 1 = 9。第 2 天:吃 6 个橘子,剩余橘子原创 2020-08-16 14:56:53 · 205 阅读 · 0 评论 -
leetcode5489
刷题主页在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。该题的题意可转化为让你找到一个最大磁力,可以使每个磁球都可以放进去原创 2020-08-16 14:06:11 · 122 阅读 · 0 评论 -
leetcode5471
刷题主页给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例 1:输入:nums = [1,1,1,1,1], target = 2输出:2解释:总共有 2 个不重叠子数组(加粗数字表示) [1,1,1,1,1] ,它们的和为目标值 2 。示例 2:输入:nums = [-1,3,5,1,4,2,-9], target = 6输出:2解释:总共有 3 个子数组和为 6 。([5,1], [4,2],原创 2020-08-09 15:36:48 · 147 阅读 · 0 评论 -
leetcode147
刷题主页对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3 输出: 1-&原创 2020-08-07 11:30:38 · 171 阅读 · 0 评论 -
leetcode337
刷题主页在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。打家劫舍问题是典型的动态规划问题,但是这道题和传统的动态规划题不同,这道题是在二叉树上进行i选择,因此可以看成树形dp,本质思想还是原创 2020-08-05 16:13:29 · 239 阅读 · 0 评论 -
leetcode132
刷题主页给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的最少分割次数。示例:输入: “aab”输出: 1解释: 进行一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。最少分割次数,因此使用动态规划。读题可以发现,其实这道题属于字符串字典一类的问题,只是这里没有给出字典,而是使用某子串是否为回文串,但是整体思路是一样的,设dp[i]表示前i个字符的最少分割次数,如果s[j:i]是回文串,那么dp[i]=min(dp[i],dp[j-1]+1)原创 2020-07-25 11:21:40 · 171 阅读 · 0 评论 -
leetcode875
刷题主页珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。示例 1:输入: piles = [3,6,7,11], H = 8输原创 2020-07-25 11:02:22 · 205 阅读 · 0 评论 -
leetcode153/154
刷题主页leetcode.153假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0看到排序数组,寻找其中的某个点,必定是二分法,而且二分法的模板很固定,就是计算中间值,根据中间值和左右两端值的大小来进行移动。不过其中有一点有原创 2020-07-22 10:28:41 · 229 阅读 · 0 评论 -
leetcode127
刷题主页给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入:beginWord = “hit”,endWo原创 2020-07-21 10:25:10 · 164 阅读 · 0 评论 -
leetcode5465
刷题主页给你一棵树(即,一个连通的无环无向图),这棵树由编号从 0 到 n - 1 的 n 个节点组成,且恰好有 n - 1 条 edges 。树的根节点为节点 0 ,树上的每一个节点都有一个标签,也就是字符串 labels 中的一个小写字符(编号为 i 的 节点的标签就是 labels[i] )边数组 edges 以 edges[i] = [ai, bi] 的形式给出,该格式表示节点 ai 和 bi 之间存在一条边。返回一个大小为 n 的数组,其中 ans[i] 表示第 i 个节点的子树中与节点原创 2020-07-19 17:31:30 · 378 阅读 · 0 评论 -
leetcode115
刷题主页给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:示例2:读题可以发现这是字符串匹配类的问题,因此可以使用动态规划解决,其中的动态转移方程可以通过画表找到。class Solution {public: int原创 2020-07-18 18:18:44 · 202 阅读 · 0 评论 -
leetcode113
刷题主页给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,返回:[[5,4,11,2],[5,8,4,5]]很经典的回溯算法,回溯算法的模板最好背下来,这里直接套用模板即可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod原创 2020-07-18 16:36:18 · 186 阅读 · 0 评论 -
leetcode97
刷题主页给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false这道题属于字符串匹配类,因此可以直接考虑动态规划。class Solution {public: bool isInterleave原创 2020-07-18 09:59:35 · 199 阅读 · 0 评论 -
leetcode1514
刷题主页给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组成,其中 edges[i] = [a, b] 表示连接节点 a 和 b 的一条无向边,且该边遍历成功的概率为 succProb[i] 。指定两个节点分别作为起点 start 和终点 end ,请你找出从起点到终点成功概率最大的路径,并返回其成功概率。如果不存在从 start 到 end 的路径,请 返回 0 。只要答案与标准答案的误差不超过 1e-5 ,就会被视作正确答案。输入:n = 3, edges原创 2020-07-12 16:54:15 · 380 阅读 · 0 评论 -
leetcode1424
刷题主页给你一个列表 nums ,里面每一个元素都是一个整数列表。请你依照下面各图的规则,按顺序返回 nums 中对角线上的整数。示例 1:示例 3:输入:nums = [[1,2,3],[4],[5,6,7],[8],[9,10,11]]输出:[1,4,2,5,3,8,6,9,7,10,11]示例 4:输入:nums = [[1,2,3,4,5,6]]输出:[1,2,3,4,5,6]这是一道相对经典的数组遍历问题,实际上就是蛇形遍历,这时我们需要注意一个特性,即斜对角线的每个横纵原创 2020-07-10 21:49:17 · 266 阅读 · 0 评论 -
Leetcode刷题常用函数总结(C++)——随刷题更新中
字符串转整型stoi:stoi(s,start,base)//s是要转换的字符串,start是起始位置,base是要转换的整数进制,默认是从0位置开始,转换为10进制int main() { string str = "123"; int res = stoi(str); cout << res << endl; system("pause"); return 0;}数值转字符串to_stringto_string(val)//val可以是任何数值类型i原创 2020-06-16 22:23:38 · 1956 阅读 · 0 评论 -
面试题17.13.恢复空格
刷题主页哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!“已经变成了"iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。注意:本题相对原题稍作改原创 2020-07-09 11:50:45 · 142 阅读 · 0 评论 -
leetcode139
刷题主页给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordD原创 2020-07-09 10:44:33 · 205 阅读 · 0 评论 -
leetcode5454
刷题主页给你一个只包含 0 和 1 的 rows * columns 矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 。示例 1:输入:mat = [[1,0,1],[1,1,0],[1,1,0]]输出:13解释:有 6 个 1x1 的矩形。有 2 个 1x2 的矩形。有 3 个 2x1 的矩形。有 1 个 2x2 的矩形。有 1 个 3x1 的矩形。矩形数目总共 = 6 + 2 + 3 + 1 + 1 = 13 。示例 2:输入:mat = [[0,1,1,0原创 2020-07-05 14:22:03 · 2107 阅读 · 0 评论 -
二叉树的前,中,后,层序遍历
前序遍历给定一个二叉树,返回它的 前序 遍历。示例:二叉树的遍历通常有两种方法,分别为递归法和迭代法,首先介绍递归法,该方法是实现最简单的,首先需要知道前序遍历的特点,先存储树的根节点然后遍历左子树并对左子树进行相应的操作,最后遍历右子树并对右子树进行相应的操作,采用深度优先搜索向下遍历,这里需要定义一个递归函数来遍历该树。递归法vector<int> preorder...原创 2019-11-14 14:55:32 · 289 阅读 · 0 评论 -
leetcode93
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”]该题是列出所有可能的ip地址格式,属于在一个范围内找到所有符合条件类的题,因此直接使用回溯法即可,重点在于剪枝部分。class Solution {public: vector<string.原创 2020-07-04 18:43:11 · 2552 阅读 · 1 评论 -
leetcode32
刷题主页给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1: 输入: “(()” 输出: 2解释:最长有效括号子串为 “()” 示例 2: 输入: “)()())” 输出: 4 解释: 最长有效括号子串为 “()()”由题意可知该题属于括号匹配类的问题,这时就该想到使用栈解决。具体做法为:遍历字符串,遇见’(‘时便入栈,当遇到’)‘时并且位于栈顶坐标处的是’('时就将其出栈,这就会形成一个匹配括号,同时计算此时匹配括号长度即可。在代码实现中一个技巧是使用原创 2020-07-04 17:37:33 · 2188 阅读 · 0 评论 -
leetcode92
刷题主页反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL这道题是普通反转链表的升级版,这次只是反转链表中间的一部分,而不是全部反转,掌握了普通的反转链表后,这道题可以很快写出,我们需要找到将要反转部分的起止位置,并将其反转,注意反转位置可能是第一个结点,因此需原创 2020-07-03 13:33:29 · 1665 阅读 · 0 评论 -
leetcode206
刷题主页反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?反转链表很简单,代码直接记住就行。class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* pre=nullptr;原创 2020-07-03 13:24:23 · 2573 阅读 · 0 评论 -
leetcode91
刷题主页一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226”输出: 3解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。读题可知,该题是求方法总数,很经典的动态规划问题原创 2020-07-03 10:08:48 · 1914 阅读 · 0 评论 -
矩阵类dfs
dfs即深度优先搜索,正如名字所说,其是一种搜索方式,按照深度进行逐个搜索,dfs常用于回溯算法中,两者十分相似,只是,回溯法是实现方法,深度优先搜索是实现方式,同时在树的相关搜索中也会出现深度优先搜索方式,基本思想和回溯算法类似,不过有个最大不同点是回溯法需要在有回溯过程,而dfs不需要回溯,其只需向着满足条件大方向搜索,直到不满足条件为止。这里不再详细讲解算法的定义等理解性的东西,而是通过分析...原创 2020-01-07 21:28:57 · 697 阅读 · 0 评论 -
leetcode85
刷题主页给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出: 6通常对于数组求最大或最小值等问题,最简单的方法是暴力遍历,但是这通常会超时,如果做过leetcode84的话,这道题应该会很好解决,这就是矩形说白了就是多个柱状图的组合,因此,我们可以把它分原创 2020-06-30 11:05:45 · 1581 阅读 · 0 评论 -
leetcode1497
刷题主页给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例 1:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分后的数字对为 (1,9),(2,8),(3,7),(4,6) 以及 (5,10) 。示例 2:输入:arr = [1,2,3,4,5,6], k = 7输原创 2020-06-29 22:01:25 · 2627 阅读 · 1 评论 -
leetcode209
刷题主页给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。看到这道题后,先抓住关键词,连续子数组和,这应该立马想到前缀和、滑动窗口方法,这两种方原创 2020-06-28 19:56:43 · 132 阅读 · 0 评论 -
leetcode84
刷题主页给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10看到这种数组找某些最大最小值的问题,最先想到的是暴力遍历,这里就是枚举每个高度所对应的最大面积,从第一个元素开始枚举,遍历该高度下的最大宽度,即原创 2020-06-27 19:07:20 · 266 阅读 · 1 评论 -
leetcode82
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3这道题是删除重复数字的结点,首先想得到的是快慢指针,快指针用于寻找不是重复的结点,慢指针用于更新连接结点。同时注意到首结点不一定会保留,如果第一个第二个结点数字相同,那么首结点就不能保留,这时.原创 2020-06-27 16:25:23 · 148 阅读 · 0 评论 -
leetcode83
刷题主页给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3看到删除操作我最先想到的是快慢指针,快指针负责找不重复的元素,慢元素负责连接这些不重复的元素,如果元素重复,那么快指针一直向后走,遇到不重复的元素后慢指针连接,遍历完链表后需要将慢链表的下一位置指向空指针。由于链表的第一个元素肯定会保留所以不需要使用哑结原创 2020-06-27 15:55:12 · 161 阅读 · 0 评论 -
leetcode448
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。输入: [4,3,2,7,8,2,3,1] 输出: [5,6]数组元素的范围是1<=a[i]<=n,直接套用模板,对数组中元素进行排序,按照nums[i]==i+1的条件,最后对调整后的数组遍历.原创 2020-06-27 14:38:20 · 175 阅读 · 0 评论 -
leetcode442
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?输入:[4,3,2,7,8,2,3,1]输出:[2,3]当看得到不用额外空间和o(n)时间复杂度时就知道无法使用hash表等辅助数据结构记录,只能在数组原地修改。注意到1<=a[i]<=n,那么说明每个元素和下标有大致的对应关系,即nums[i]=i+1,这样采用抽屉原理,一个位置.原创 2020-06-27 14:26:18 · 222 阅读 · 0 评论 -
Leetcode刷题笔记系列——持续更新中
前言此博文是博主在刷完400多道leetcode题目后开始总结的,因为刷完题目后会很快就忘记,即使遇见相同或类似的仍然无法AC,在此打算将不同类型的题目进行总结,并尽量总结出模板,本系列是按照每日一题,或自己的刷题顺序进行总结,不足之处还望指出。这里只讲当我看到这道题的想法思路,具体的代码讲解不加解释,代码的实现有多种,而且leetcode上有很好的解释。类型题目抽屉原理Leetcode41 缺失的第一个正数...原创 2020-06-27 12:14:03 · 1109 阅读 · 1 评论 -
leetcode41
给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。这个题目有个特殊的要求,即时间复杂度为o(n),常数级别的额外空间。这就需要特殊考虑,如果没有时间复杂度要求,那么可以直接排序,然后遍历,找出第一个nums[i]!=i+1的数即为所求。如果没有常数级别的额外空间要求,那.原创 2020-06-27 12:11:10 · 212 阅读 · 0 评论