LeetCode 41. First Missing Positive
来源:互联网 发布:基于php视频网站设计 编辑:程序博客网 时间:2024/05/08 06:16
描述
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.
Your algorithm should run in O(n) time and uses constant space.
分析
本质上是桶排序 (bucket sort),每当 nums[i]!= i+1 的时候,将 nums[i] 与 nums[nums[i]-1] 交换,直到无法 交换为止,终止条件是 nums[i]== nums[nums[i]-1]。
代码
class Solution {public: int firstMissingPositive(vector<int>& nums) { bucket_sort(nums); const int n = nums.size(); for (size_t i = 0; i < n; ++i) { if (nums[i] != i + 1) return i + 1; } return n + 1; }private: static void bucket_sort(vector<int>& nums) { const int n = nums.size(); for (size_t i = 0; i < n; ++i) { while (nums[i] != i + 1) { if (nums[i] <= 0 || nums[i] > n || nums[i] == nums[nums[i] - 1]) break; swap(nums[i], nums[nums[i] - 1]); } } }};
0 0
- [LeetCode]41.First Missing Positive
- LeetCode --- 41. First Missing Positive
- LeetCode 41.First Missing Positive
- [Leetcode] 41. First Missing Positive
- [leetcode] 41.First Missing Positive
- leetCode 41. First Missing Positive
- LeetCode 41. First Missing Positive
- leetcode 41. First Missing Positive
- Leetcode 41. First Missing Positive
- LeetCode 41. First Missing Positive
- [leetcode]41. First Missing Positive
- LeetCode-41.First Missing Positive
- leetcode 41. First Missing Positive
- [LeetCode] 41. First Missing Positive
- [LeetCode]--41. First Missing Positive
- leetcode 41. First Missing Positive
- leetcode 41.First Missing Positive
- leetcode 41. First Missing Positive
- 跟天齐老师学Spark(6)--Spark的常用算子介绍
- 用JS获取地址栏参数的方法
- jdbc往mysql读取大文本文件
- jQuery AJAX详解
- composer问题汇总
- LeetCode 41. First Missing Positive
- 回文数
- Java内存泄露原因详解
- HDU-3397 线段树+区间合并
- Android之内容提供者,你确定不进来看一看???
- ContentProvider实现增删查改
- 跟天齐老师学Spark(7)--关于Spark的RDD
- 1002. A+B for Polynomials (25)
- 新手如何将less文件转换成css文件