leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0041.cpp (463B)
0 class Solution {
1 public:
2 int firstMissingPositive(vector<int> &nums) const {
3 const int n = size(nums);
4 for (int i = 0; i < n; i++)
5 if (nums[i] <= 0) nums[i] = n + 1;
6 for (int i = 0; i < n; i++) {
7 const int num = abs(nums[i]);
8 if (num <= n) nums[num - 1] = -abs(nums[num - 1]);
9 }
10 for (int i = 0; i < n; i++)
11 if (nums[i] > 0) return i + 1;
12 return n + 1;
13 }
14 };