[leetcode] 【排序】 41. First Missing Positive
来源:互联网 发布:linux 登录用户 编辑:程序博客网 时间:2024/06/08 00:45
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.
题意
在一个未排序数组中找第一个丢失的正整数。 即从最小的正整数开始,第一个不连续的整数。要求时间复杂度为O(n),空间发杂度为常数。
题解
需要对数组进行处理,让nums[i]=i+1;这样,只要从头开始遍历,发现哪个nums[i]!=i+1,那么i+1就是缺失的正整数。
因为第一个正整数肯定是从1开始算的,所以对于 nums[i]<=0以及nums[i]>n的数,不作处理。我们需要做的 就是把 下标是nums[i]-1的元素换成nums[i],其实就是进行nums[i]=i+1的转换。这样转换一轮之后,所有的在1~n之间的nums[i]都处于nums[i]-1下标处。即处理完毕,接下来就是找缺失就可以了。
class Solution {public: int firstMissingPositive(vector<int>& nums) { if(nums.empty()) return 1; sort(nums); for(int i=0;i<nums.size();i++) if(nums[i]!=i+1) return i+1; return nums.size()+1; } void sort(vector<int>& nums) { for(int i=0;i<nums.size();i++) { while(nums[i]!=i+1) { if(nums[i]<=0||nums[i]>nums.size()||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
- 浅谈MFCC
- andriod开发:charles抓取https请求
- linux下创建指定大小的空文件
- SQL Server遍历表的几种方法
- Androd手机适配
- [leetcode] 【排序】 41. First Missing Positive
- 【java细节】 JAVAWeb部署经验:Maven包丢失、打包缺jar、classNotFound等
- 应用华云对象存储服务实现网站存储的平滑迁移实践
- VS配置OpenGL环境
- 自定义View--弹性小球
- (循环语句)小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。(面试)
- IBM Rational Rose 边用边整理
- NodeMCU文档中文翻译 3 构建固件
- SQL SERVER 正则匹配实例分享--【叶子】