1. 程式人生 > 其它 >求陣列中未出現的最小正整數

求陣列中未出現的最小正整數

技術標籤:牛客網java陣列

該題來自牛客網 知識點:陣列

求解思路:
先將陣列排序,當排序後的陣列的最後一個元素為負或為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)); }

在這裡插入圖片描述