leetcode 268. Missing Number
原地哈希。代码没怎么优化,思路清晰。
int missingNumber(vector<int>& nums) { int size = nums.size(); for (int i = 0; i < size; i++) { if (nums[i] != -1) { if (nums[i] == size) { nums.push_back(size); nums[i] = -1; } else if (i != nums[i]) { swap(nums[i], nums[nums[i]]); i--; // 不前进的意思,由于上面i++ } } } if (nums.size() != size + 1) return size; for (int i = 0; i <= size; i++) if (i != nums[i]) return i; }
【本文章出自博客园willaty,转载请注明作者出处,误差欢迎指出~】