最小整数
- 设数组长度为n,当缺失的最小整数最大的情况下,一定是n+1,数组0-n数组随机排列。
- 当有不在1-n之间的数字时,不考虑这些超出范围的数字,它们哈希与否都不影响得到缺失的最小整数。缺失的整数范围是1-n+1。同时,防止数组哈希时候越界。
class Solution {
public:
int minNumberdisappered(vector<int>& arr) {
int n = arr.size();
for(int i = 0; i < n; i++) {
while(arr[i] > 0 && arr[i] <= n && i + 1 != arr[i]) {
swap(arr[arr[i]-1], arr[i]);
}
}
for(int i = 0; i < n; i++) {
if(arr[i] != i+1) return i+1;
}
return n+1;
}
};
京公网安备 11010502036488号