[LintCode] 丢失的第一个正整数

简介: 1 class Solution { 2 public: 3 /** 4 * @param A: a vector of integers 5 * @return: an integer 6 */ 7 int fir...
 1 class Solution {
 2 public:
 3     /**    
 4      * @param A: a vector of integers
 5      * @return: an integer
 6      */
 7     int firstMissingPositive(vector<int> A) {
 8         // write your code here
 9         int n = A.size();
10         for (int i = 0; i < n; i++)
11             while (A[i] > 0 && A[i] <= n && A[A[i] - 1] != A[i])
12                 swap(A[i], A[A[i] - 1]);
13         for (int i = 0; i < n; i++)
14             if (A[i] != i + 1)
15                 return i + 1;
16         return n + 1;
17     }
18 };

 

目录
相关文章
|
13天前
Leetcode第41题(缺失的第一个正数)
这篇文章介绍了解决LeetCode第41题“缺失的第一个正数”的两种方法:使用哈希表和调整数组元素位置,以实现时间复杂度为O(n)且只使用常数级别额外空间的解决方案。
32 0
Leetcode第41题(缺失的第一个正数)
【Leetcode -263.丑数 -268.丢失的数字】
【Leetcode -263.丑数 -268.丢失的数字】
26 0
|
5月前
|
Java
每日一题《剑指offer》数组篇之调整数组顺序使奇数位于偶数前面
每日一题《剑指offer》数组篇之调整数组顺序使奇数位于偶数前面
60 0
每日一题《剑指offer》数组篇之调整数组顺序使奇数位于偶数前面
|
5月前
leetcode-41:缺失的第一个正数
leetcode-41:缺失的第一个正数
33 0
|
算法
【算法挨揍日记】day05——209. 长度最小的子数组、3. 无重复字符的最长子串
题目描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
355 0
LeetCode-41 缺失的第一个正整数
LeetCode-41 缺失的第一个正整数
|
算法 安全 Swift
LeetCode - #41 缺失的第一个正数
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
算法
leetcode:41.缺失的第一个正数
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。
50 0
|
人工智能 图计算
LeetCode--缺失的第一个正数(41)和 接雨水(42)
LeetCode--缺失的第一个正数(41)和 接雨水(42)
62 0
|
存储 算法
【题型总结】找到第n个自定义数 | 丑数系列 + 神奇数字
思路:对于对于任意一个丑数 x,其与任意的质因数(2、3、5)相乘,结果(2x、3x、5x)仍为丑数。因此可以使用优先队列(小根堆)存放丑数x,每次从队列取出最小值x,并将x所对应的2x、3x和5x入队。第n次出队的值即为第n个丑数
250 0
【题型总结】找到第n个自定义数 | 丑数系列 + 神奇数字