题解 | #缺失的第一个正整数#
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int minNumberDisappeared (int[] nums) {
// write code here
int len = nums.length;
// 初始化索引,从0开始
int index= 0;
while(index <len){
//不符合的数据直接置为-1
if(nums[index]>len || nums[index] <= 0){
nums[index++]=-1;
//不符合的就进行交换,将其交换到符合条件的地方
}else if(nums[index] != index+1){
swap(index,nums);
//符合条件往前走1步
}else if( nums[index] == index+1){
index++;
}
}
//遍历数组
for(int i=0;i<len;i++){
if(nums[i]==-1){
return i+1;
}
}
return len+1;
}
private void swap(int index,int[] nums){
int cur = nums[nums[index]-1];
nums[nums[index]-1] = nums[index];
nums[index] = cur;
}
}

查看17道真题和解析