最小整数
- 设数组长度为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; } };