41. First Missing Positive
2017-11-30 21:08
141 查看
41. First Missing Positive
题目描述: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.
题目大意:给定一个未排序的数组,找到第一个丢失的正整数。
思路:将每正数放到他正确的位置,第0个位置放置元素1,第一个位置放置元素2,依此类推,放置完毕之后,判断每个位置的元素,是否满足当前位置的元素为当前位置索引+1,如果不是,则返回当前位置应该返回的元素,即索引+1,如果遍历完毕,都符合适当位置放相应元素,则丢失的是最后一个元素,返回n+1。
代码
package Array; /** * @Author OovEver * @Date 2017/11/30 20:52 */ public class LeetCode41 { public int firstMissingPositive(int[] nums) { for(int i=0;i<nums.length;i++) { // 判断当前位置的元素是否为应当放的元素,如位置0放1位置放2 while (nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] != nums[i]) { // 如果不是,交换两个位置的元素 int temp = nums[nums[i] - 1]; nums[nums[i] - 1] = nums[i]; nums[i] = temp; } } for(int i=0;i<nums.length;i++) { // 正数不连续 if (nums[i] != i + 1) { return i + 1; } } return nums.length + 1; } }
相关文章推荐
- [Leetcode] #41 First Missing Positive
- 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 hard模式专杀之41 First Missing Positive
- leetCode (41)--First Missing Positive
- Java [Leetcode 41]First Missing Positive
- LeetCode 41 - First Missing Positive
- 41. First Missing Positive
- Leet Code 41 First Missing Positive - Java
- leetcode 41:First Missing Positive
- 41-h-firstMissingPositive
- 41. First Missing Positive
- 【LeetCode 41】 First Missing Positive
- LeetCode 41 First Missing Positive(找到数组中第一个丢失的正数)
- Leetcode 41 - First Missing Positive
- 41. First Missing Positive
- leetcode question 41:First Missing Positive