day11 41. 缺失的第一个正数
1 尝试1:这道题下面这种方式行不通了,因为需要创建一个长度为N的容器,这需要知道输入的数组的最大值,所以只能用swap的方式
class Solution {
public:int firstMissingPositive(vector<int>& nums) {vector<int> Array(nums.size(), -1); //原地哈希表容器for (int i = 0; i < nums.size(); i++){if (nums[i] >0){Array[nums[i] - 1] = nums[i];}}for (int i = 0; i < nums.size(); i++){if (Array[i] == -1){return (i+1);}}}
};
int main()
{vector<int> nums= { 7,8,9,11,12 };int k = 0;Solution s1;int ans = s1.firstMissingPositive(nums);cout << "zc is " << ans << endl;return 0;
}