描述
给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数
进阶: 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
数据范围:
−231≤nums[i]≤231−1−231≤nums[i]≤231−1
0≤len(nums)≤5∗1050≤len(nums)≤5∗105
#include <unordered_map>
class Solution {
public:
int minNumberDisappeared(vector<int>& nums) {
// write code here
sort(nums.begin(),nums.end());
int res=1;
for(auto &a:nums)
{
if(a<res)continue;
if(a==res) res++;
else
return res;
}
return res;
}
};
// class Solution {
// public:
// int minNumberDisappeared(vector<int>& nums) {
// int n = nums.size();
// unordered_map<int, int> mp;
// //哈希表记录数组中出现的每个数字
// for(int i = 0; i < n; i++)
// mp[nums[i]]++;
// int res = 1;
// //从1开始找到哈希表中第一个没有出现的正整数
// while(mp.find(res) != mp.end())
// res++;
// return res;
// }
// };
总结:不难