First Missing Positive
2016-05-08 21:22
274 查看
题目描述:
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.
交换数组元素,使得数组中第i位存放数值(i+1)。最后遍历数组,寻找第一个不符合此要求的元素,返回其下标。整个过程需要遍历两次数组, 复杂度为O(n)。
这个题和Missing Number有异曲同工之妙。
代码如下所示:
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.
交换数组元素,使得数组中第i位存放数值(i+1)。最后遍历数组,寻找第一个不符合此要求的元素,返回其下标。整个过程需要遍历两次数组, 复杂度为O(n)。
这个题和Missing Number有异曲同工之妙。
代码如下所示:
public int firstMissingPositive(int[] A) { if(A.length==0||A==null) return 1; for(int i = 0;i<A.length;i++) { while(A[i]!=i+1) { if(A[i]>=A.length||A[i]<=0||A[i]==A[A[i]-1]){ break; } int temp = A[i]; A[i] = A[temp-1]; A[temp-1] = temp; } } for(int i = 0;i<A.length;i++) { if(A[i]!=i+1) return i+1; } return A.length+1; }
相关文章推荐
- hdu_5677_ztr loves substring(回文+二维多重背包)
- c# new 一个对象要做什么
- Program3_O
- Javaweb中的文件批量上传,并将文件路径等信息保存到数据库中
- hdu_5677_ztr loves substring(回文+二维多重背包)
- 【C++】标准IO库
- 20145320 《Java程序设计》第10周学习总结
- android studio好卡换电脑(as2.1卡爆)
- 求长方体的体积和表面积
- 70.JAVA编程思想——Web应用
- 数据结构——排序算法
- 69.JAVA编程思想——数据报
- 北大发布全国最好医院排名,详细到科室,关键救命
- TortoiseSVN服务器搭建
- Android中使用TTS(TextToSpeech)将文字转为语音
- GO语言学习
- 20150320--负载均衡+ob缓存-02
- Node.js第一讲
- 68.JAVA编程思想——服务多个客户
- 67.JAVA编程思想——套接字