LeetCode:First Missing Positive
Posted walker lee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:First Missing Positive相关的知识,希望对你有一定的参考价值。
First Missing Positive
Total Accepted: 66680 Total
Submissions: 277290 Difficulty: Hard
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.
Subscribe to see which companies asked this question
Hide Similar Problems
思路:
将每个数放置到下标对应的位置。
如num=5,将它与nums[4]位置上的数交换;第二次遍历数组,第一个没与位置对应的数即为答案。
java code:
public class Solution { public int firstMissingPositive(int[] nums) { int n = nums.length; for(int i=0;i<n;i++) { while(0 < nums[i] && nums[i] <= n && nums[nums[i]-1] != nums[i]) swap(nums, nums[i]-1,i); } for(int i=0;i<n;i++) { if(nums[i] != i+1) return i+1; } return n+1; } // 自定义函数:交换 private void swap(int[] nums, int i, int j) { nums[i] ^= nums[j]; nums[j] ^= nums[i]; nums[i] ^= nums[j]; } }
以上是关于LeetCode:First Missing Positive的主要内容,如果未能解决你的问题,请参考以下文章
leetcode - First Missing Positive
[Leetcode] First Missing Positive
LeetCode First Missing Positive
leetcode:First Missing Positive分析和实现