LeetCode:First Missing Positive
2017-03-26 17:36
513 查看
推荐参照:Leetcode题目难度等级及面试频率总结
题目描述:
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.
思路:
注意题目要求,时间复杂度O(n),空间复杂度O(1)。
把正数n放在第n-1个位置上,这样从第一个位置开始遍历,如果位置上的数不等于位置号,那么就是第一个缺失的正数。
Any comments greatly appreciated.
题目描述:
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.
思路:
注意题目要求,时间复杂度O(n),空间复杂度O(1)。
把正数n放在第n-1个位置上,这样从第一个位置开始遍历,如果位置上的数不等于位置号,那么就是第一个缺失的正数。
public class Solution { public int firstMissingPositive(int[] nums) { //把小于等于nums.length的正数nums[i]放到第nums[i]-1个位置上 for(int i = 0;i < nums.length;i++){ 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; } }
Any comments greatly appreciated.
相关文章推荐
- LeetCode 41 First Missing Positive
- 41. First Missing Positive Leetcode Python
- leetcode:First Missing Positive
- 开始刷leetcode day20:First Missing Positive
- leetcode[41]First Missing Positive
- leetcode——First Missing Positive
- First Missing Positive 找第一个没在array中出现的正数@LeetCode
- [LeetCode] First Missing Positive
- LeetCode Online Judge 题目C# 练习 - First Missing Positive
- leetcode First Missing Positive
- 【leetcode】First Missing Positive(hard) ☆
- LeetCode-First Missing Positive
- LeetCode - First Missing Positive
- LeetCode--First Missing Positive (第一个丢失的正整数)Python
- 【leetcode】Array——First Missing Positive(41)
- LeetCode First Missing Positive
- LeetCode 41 First Missing Positive
- [leetcode] First Missing Positive
- First Missing Positive leetcode
- LeetCode: first Missing Positive