知识点
哈希表
思路
遍历整个数组可以求出最大的负数
建立哈希表,然后从1开始查看是否存在该正数,因为最多n个数,所以尝试最多n次
时间复杂度为
AC code (C++)
#include <unordered_set>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型vector
*/
const int INF = 2e9;
vector<int> findMissingAndMaxNegative(vector<int>& nums) {
unordered_set<int> S(nums.begin(), nums.end());
int mx = -INF, mn = 0;
for (auto x : nums) {
if (x < 0) mx = max(mx, x);
}
if (mx == -INF) mx = 0;
for (int i = 1; ; i ++) {
if (!S.count(i)) {
mn = i;
break;
}
}
return {mn, mx};
}
};

京公网安备 11010502036488号