数组中未出现的最小正整数
数组中未出现的最小正整数
https://www.nowcoder.com/practice/8cc4f31432724b1f88201f7b721aa391?tpId=117&tqId=37800&rp=1&ru=%2Fta%2Fjob-code-high&qru=%2Fta%2Fjob-code-high%2Fquestion-ranking&tab=answerKey
public int minNumberdisappered (int[] arr) {
// write code here
//原地处理数组 将数组中数字i放在i-1的位置
for(int i=0;i<arr.length;i++){
//保证数组中处理的数字不越界
if(arr[i]>0 && arr[i]<=arr.length){
swap(i,arr[i]-1,arr);
}
}
for(int i=0;i<arr.length;i++){
if(i+1!=arr[i]) return i+1;
}
return arr.length+1;
}
private void swap(int i,int j,int[] arr){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}