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

2021-10-13 10:06:07 字數 859 閱讀 3968

給定乙個無序陣列arr,找到陣列中未出現的最小正整數

例如arr = [-1, 2, 3, 4]。返回1

arr = [1, 2, 3, 4]。返回5

[要求]

時間複雜度為o(n),空間複雜度為o(1)

示例1

[-1,2,3,4]
1
}

//方法二:先原地排序,將1~n之間的數字通過交換的方式進行排序

//例如[2,3,1,4] 第乙個元素nums[0]=2,可以把它放到索引下標為n-1=2-1的位置

//陣列變成[3,2,1,4],nums[0]=3,把它交換到索引下標為的位置,陣列變成[1,2,3,4],完成排序。

//陣列排序後,遍歷陣列判斷0的位置是否是1,1的位置是否是2,直到遇到沒有出現的數字

//時間複雜度o(n),空間複雜度o(1)

int n = arr.length;

for (int current = 0; current < arr.length; current++) else }}

for (int i = 0; i < n; i++)

}return n + 1;

}private void swap(int arr, int a, int b)

//方法一:窮舉法

//最小的正整數是1,遍歷陣列,在陣列中找1,然後找2,依次找下去

//直到找到第乙個沒有出現的正整數,這個數就是想要的結果

//時間複雜度o(n),空間複雜度o(1)

int res = 1;

for (int num : arr)

}return res;

}

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

陣列中未出現的最小正整數 給定乙個無序陣列arr,找到陣列中未出現的最小正整數 例如arr 1,2,3,4 返回1 arr 1,2,3,4 返回5 要求 時間複雜度為o n o n o n 空間複雜度為o 1 o 1 o 1 輸入描述 第一行為乙個整數n。表示陣列長度。接下來一行n個整數表示陣列內的...

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

題目 給定乙個無序整型陣列arr,找到陣列中未出現的最小正整數。要求時間複雜度為o n 空間複雜度為o 1 例如 arr 1,2,3,4 返回1。arr 1,2,3,4 返回5。解法 一 窮舉查詢 最小正整數是1,所以常規的方法就是在陣列中找1,然後是2,依次找下去 一直找到第乙個沒有出現的正整數,...

演算法習題 陣列中未出現的最小正整數

題目 給定乙個無序整型陣列arr,找到陣列中未出現的最小正整數。要求時間複雜度為o n 空間複雜度為o 1 例如 arr 1,2,3,4 返回1。arr 1,2,3,4 返回5。分析 這道題要理解最小正整數的意思,最小的正整數就是1,所以考察的方法就是在陣列中找1,然後找2,依次找下去.直到第乙個沒...