- 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