- IDE: C++ (C)
- author : MinRam
- create : 03/19/2019
- update: 03/19/2019
First Missing Positive - LeetCodeios
大致思路,簡易桶。 直接以值爲Key,發散到數組中,經過Swap實現。數組
僞代碼優化
判斷Current是否知足一下狀況,若知足則2,反之3ui
圖片流spa
// 優化io流 static const auto __ = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return nullptr; }(); class Solution { public: int firstMissingPositive(vector<int>& nums) { int numsLen = nums.size(); // 簡易桶 for (int i = 0 ; i < numsLen; ){ if (nums[i] != (i + 1) && nums[i] >= 1 && nums[i] <= numsLen && nums[nums[i] - 1] != nums[i]) swap(nums[i], nums[nums[i] - 1]); else ++i; } // 遍歷查值 for (int i = 0; i < numsLen; ++i) if (nums[i] != (i + 1)) return i + 1; // 最大值 return numsLen + 1; } };
[1] Longest palindromic substring - LeetCodecode