考察知识点:数组
题目分析:
首先将所有数从小到大排序。当找到负数时,维护最大的负数即可;
而对于没有的最小的正数,首先设为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}; } };