[LeetCode] 41. First Missing Positive
来源:互联网 发布:网络机顶盒排行榜 编辑:程序博客网 时间:2024/05/21 21:42
思路:
参考了多篇博客, 大家的思路差不多都一样, 把元素放到属于他的格子里. 首先看数组内第i个元素是不是i + 1, 如果不是看这个元素是不是在数组长度范围内, 如果依然符合条件的话再看目标位置的元素和现在的元素一样不一样, 要是一样就不用换了而且跳出这个格子进下一个.
这样遍历完所有格子后, 再从头遍历一遍, 第一次遇到哪个格子的值不是索引值加1, 那第一个丢失的正数就是他的索引值加1, 返回结果. 如果遍历完了依然都符合要求, 就说明前面从1开始没有断的正数, 返回数组长度加1即可.
int firstMissingPositive(vector<int>& nums) { for (int i = 0; i < nums.size(); ) { if (nums[i] != i + 1 && nums[i] > 0 && nums[i] <= nums.size() && nums[i] != nums[nums[i] - 1]) swap(nums[i], nums[nums[i] - 1]); else i++; } for (int i = 0; i < nums.size(); i++) { if (nums[i] != i + 1) return i + 1; } return nums.size() + 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
- 自学笔记—智能短信项目第一天
- TencentSessionDelegate找不到
- 《转》【LTE基础知识】LTE之S1接口与X1接口介绍
- Mac 浏览器开发人员工具调试
- HDU 2089 不要62(数位dp)
- [LeetCode] 41. First Missing Positive
- Android自定义View
- 《转》LTE S1接口控制面面为什么使用SCTP,而不用TCP
- 【Git】'ssh-keygen' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 关于解析图片
- centos 安装 mysql
- LeetCode - 169. Majority Element
- 派生类中构造函数与虚构函数的研究
- Apache Commons Email组件介绍使用