41. First Missing Positive
来源:互联网 发布:域名备案要钱吗 编辑:程序博客网 时间:2024/06/08 12:50
1、题目描述
给一个有n个元素的乱序的数组,找到第一个缺失的正整数。
2、思路
把每一个元素放到它对应的位置上去,比如nums[i]应该放在nums[nums[i] -1]这个位置。
如果nums[i] <=0就不管它啦。
最后,找出第一个nums[i] != i+1的位置,即为答案。
不存在的话就返回n+1.
3、代码
int firstMissingPositive(vector<int>& nums) { int n = nums.size(); for(int i=0;i<n;i++){ while(nums[i]<=n&&nums[i]>=1 && nums[nums[i]-1]!=nums[i]){ swap(nums[i],nums[nums[i]-1]); } } for(int i=0;i<n;i++){ if(nums[i]!=i+1) return i+1; } return n+1; }
阅读全文
0 0
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 这次,苹果真的摔得很惨……
- win8--PPTP教程
- 数据结构-存储结构
- 算法学习——递归实践
- 【算法知识总结】回溯法
- 41. First Missing Positive
- Oracle 12c报错:ORA-01078和LRM-00109的解决办法
- GAN系列学习(1)——前生今世
- 组织项目管理成熟度模型OPM3
- MySQL半同步--after_flush
- 二进制位从左到右翻转后的值
- 深入理解Spring AOP实战(基于XML)
- JDK动态代理探索
- Ubuntu 开机出现 grub rescue> 终端模式修复方法