题解 | #没有出现的编号#

没有出现的编号

https://www.nowcoder.com/practice/875d705df65c401a905f574070e09320

考察的知识点:数组;

解答方法分析:

  1. 将数组进行排序,以便后续的处理。
  2. 初始化两个变量 ans[0] 和 ans[1] 为 1 和 0。
  3. 遍历数组中的元素,对于每个元素进行判断:如果元素是负数,将其赋值给 ans[1]。如果元素是正数,判断其与 temp 是否相等:如果不相等,将 temp 赋值给 ans[0]。如果相等,将 temp 值增加1。
  4. 最后,将 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;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务