求陣列中未出現的最小正整數
阿新 • • 發佈:2020-12-19
該題來自牛客網 知識點:陣列
求解思路:
先將陣列排序,當排序後的陣列的最後一個元素為負或為0即缺失的為1,當陣列的長度為1時缺失的也是1。
除這兩種情況意外,我們定義一個目標min先定義為1,遍歷陣列,在遍歷過程中將陣列值與目標值比較是否相等,即min從最小正整數1開始增長。
public class Classes {
public static int minNumberdisapper (int[] arr) {
int len=arr.length;
Arrays.sort(arr); //對陣列進行排序(升序)
if(len==0 || arr[len-1] <=0){
return 1;
}
int min=1; //給定未出現的最小正整數為1
for(int i=0;i<len;i++){
if(arr[i]==min){
min++;
}
}
return min;
}
public static void main(String[] args){
int[ ] arr = {1,2,3,5,4,11,9,6,45,10};
System.out.println("陣列中未出現的最小正整數為:"+minNumberdisapper(arr));
}