题解 | #没有出现的编号#
没有出现的编号
https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320
考察知识点:数组
题目分析:
首先将所有数从小到大排序。当找到负数时,维护最大的负数即可;
而对于没有的最小的正数,首先设为1,当出现1时,将其设为2,依次枚举即可。
所用编程语言:C++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型vector
*/
vector<int> findMissingAndMaxNegative(vector<int>& nums) {
// write code here
int size = nums.size();
int maxNeg = 0;
int minPos = 1;
sort(nums.begin(), nums.end());
for (int i = 0; i < size; i++) {
if (nums[i] < 0) {
maxNeg = maxNeg ? max(maxNeg, nums[i]) : nums[i];
} else if (nums[i] > 0) {
if (nums[i] == minPos) minPos++;
}
}
return {minPos, maxNeg};
}
};
