First Missing Positive
2016-02-29 11:34
363 查看
题目:
Given an unsorted integer array, find the first missing positive integer.
For example,
Given
and
Your algorithm should run in O(n) time and uses constant space
思想:
本打算采用常规方法,排序后再进行搜索,发现边界比较复杂,难以处理。后在LeetCode上看到一个答案,具体思想是,先对数组进行重新排序,排序的方法是,如果当前的nums[i]=5,我们就将nums[4]=5;这样一来就可以通过判断nums[i]是否等于i+1来判断是否连续了。
代码:
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
思想:
本打算采用常规方法,排序后再进行搜索,发现边界比较复杂,难以处理。后在LeetCode上看到一个答案,具体思想是,先对数组进行重新排序,排序的方法是,如果当前的nums[i]=5,我们就将nums[4]=5;这样一来就可以通过判断nums[i]是否等于i+1来判断是否连续了。
代码:
class Solution { public: int firstMissingPositive(vector<int>& nums) { int len = nums.size(); for (int i = 0; i < len; i++) { while (nums[i]>0 && nums[i] <= len && nums[nums[i] - 1] != nums[i]) swap(nums[i], nums[nums[i] - 1]); } for (int i = 0; i < len; i++) { if (nums[i] != i + 1) return i + 1; } return len + 1; } };
相关文章推荐
- 二月英语 再度起飞
- httpclien各个版本超时时间设置
- muduo库的学习10---TcpServer与TcpClient的基本设计---TcpConnection建立与关闭
- 【转】ConcurrentModificationException异常解决办法 --不错
- [案例]更高效,更安全,北京高法开启“掌上法院”新时代
- [Locked] Unique Word Abbreviation
- 简单的苗为课堂搜索版式编写《超链接》
- CentOS 6.5系统上安装SVN服务器端的方法及目录访问权限配置(转总结)
- Hibernate延时加载
- Jump Game II
- VB.NET程序目录下写日志
- muduo库的学习8---TcpServer与TcpClient的基本设计---TcpServer
- 静态分配的顺序表
- 前端页面查看接口快捷键
- c++ const类成员函数
- AXIOM解析XML 详细原理
- hdu 3879 Base Station bzoj 1497 最大获利问题 最大权闭合子图
- 英语总结
- maven之应用总结
- 产品经理反型记 | 解答新人面试中遇到的问题