41. First Missing Positiveleetcode寻找第一个丢失的整数,java,算法
Posted 皓浩浩皓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了41. First Missing Positiveleetcode寻找第一个丢失的整数,java,算法相关的知识,希望对你有一定的参考价值。
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.
题目:寻找第一个丢失的整数意思为【1,2,4,5,6,7】那么丢失的是3,如果【1,1000】,这时丢失的是2
注意需要在O(n)时间内而且不允许使用额外的空间
所以题目是需要你在从1 ~ +∞的范围中,找到没有在输入数组出现过的最小的正public class Solution { public int firstMissingPositive(int[] nums) { int len=nums.length;if(nums==null||len==0)
return 1; //首先判断当前元素是否为整数,否则直接过,并且num[j]<len不然造成数组越界,最后判断如果nums[j]-1!=[j]防止死循环 for(int j=0;j<len;j++){ while(nums[j]>0&&nums[j]<=len&&(nums[j]-1)!=j){ int temp=nums[nums[j]-1]; if(temp==nums[j]){ break; } nums[nums[j]-1]=nums[j]; nums[j]=temp; } } for(int j=0;j<len;j++){ if(nums[j]!=j+1){ return j+1; } }
return len+1; } }
以上是关于41. First Missing Positiveleetcode寻找第一个丢失的整数,java,算法的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 41. First Missing Positive
java 41. First Missing Positive(#)。java
java 41. First Missing Positive(#)。java