想了想,感觉靠谱的方法还是借用传过来的数组,至少没有额外增加空间。
class Solution { public: int minNumberdisappered(vector<int>& arr) { // write code here int n = arr.size(); for(int i=0;i<n;i++) { if(arr[i] == i + 1 || arr[i] > n || arr[i] <= 0) continue; while(arr[i] != i + 1 && arr[i] <= n && arr[i] > 0) swap(arr[i],arr[arr[i]-1]); } for(int i=0;i<n;i++) if(arr[i] != i + 1) return i + 1; return n+1; } };