题解 | #没有出现的编号#
没有出现的编号
https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320
考察的知识点:数组;
解答方法分析:
- 将数组进行排序,以便后续的处理。
- 初始化两个变量
ans[0]
和ans[1]
为 1 和 0。 - 遍历数组中的元素,对于每个元素进行判断:如果元素是负数,将其赋值给 ans[1]。如果元素是正数,判断其与 temp 是否相等:如果不相等,将 temp 赋值给 ans[0]。如果相等,将 temp 值增加1。
- 最后,将
temp
的值赋给ans[0]
。
所用编程语言:C++;
完整编程代码:↓
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型vector */ vector<int> findMissingAndMaxNegative(vector<int>& nums) { vector<int> ans(2); ans[0] = 1; sort(nums.begin(), nums.end()); int temp = 1; for (int i = 0; i < nums.size(); i++) { if (nums[i] < 0) { ans[1] = nums[i]; } else if (nums[i] > 0) { if (nums[i] != temp) { ans[0] = temp; break; } temp++; } } ans[0] = temp; return ans; } };