diff options
Diffstat (limited to 'first_missing_pos.cpp')
-rw-r--r-- | first_missing_pos.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/first_missing_pos.cpp b/first_missing_pos.cpp new file mode 100644 index 0000000..5955ded --- /dev/null +++ b/first_missing_pos.cpp @@ -0,0 +1,17 @@ +#include "leetcode.h" + +class Solution { +public: + int firstMissingPositive(vector<int> &nums) { + int n = nums.size(); + for (int i = 0; i < n; i++) + while (nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) + swap(nums[i], nums[nums[i] - 1]); + for (int i = 0; i < n; i++) + if (nums[i] != i + 1) + return i + 1; + return n + 1; + } +}; + +int main() {} |