LeetCode题目记录-645. 错误的集合(C++代码实现)

Posted wyy_persist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题目记录-645. 错误的集合(C++代码实现)相关的知识,希望对你有一定的参考价值。

题目链接:645. 错误的集合 - 力扣(LeetCode) (leetcode-cn.com)

题目要求:

题目思路:

思路:见下方代码。

C++代码实现:

class Solution 
public:
    vector<int> findErrorNums(vector<int>& nums) 
        int n = nums.size();

        sort(nums.begin(),nums.end());
        vector<int> res;


        for(int i = 0;i < n - 1;i ++)//得到其中重复的元素,加入到res数组中
            if(nums[i] == nums[i + 1])
                res.push_back(nums[i]);
                break;
            
        


        if(nums[0] != 1) //首先判断数组的第一个元素是不是1,不是的话直接将1加入到res数组中
            res.push_back(1);
        else//如果第一个元素是1,那么就是后续的元素出现了缺失,使用for循环遍历

            for(int i = 1;i < n;i++)
                if(nums[i] != nums[i - 1] + 1 && nums[i] != nums[i - 1])//如果后一个元素不是前一个元素值 + 1,且两个元素不相同(避免重复元素的统计),那么将前一个元素的值 + 1添加到res数组中
                    res.push_back(nums[i - 1] + 1);
                    break;
                
            

        

        if(nums[n - 1] != n)//如果确实元素出现在了最后一个位置,那么将该元素添加到res数组中
            res.push_back(n);
        

        return res;
    
;

AC截图:

本题解仅作为个人复习查看使用,并无他用。 

以上是关于LeetCode题目记录-645. 错误的集合(C++代码实现)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 645 错误的集合[Map 桶排序 双指针] HERODING的LeetCode之路

LeetCode_645_数组_错误集合

LeetCode_645_数组_错误集合

LeetCode 451. 根据字符出现频率排序 / 645. 错误的集合 / 726. 原子的数量 / NC52 括号序列 / NC102 最近公共祖先 / NC78 反转链表

错误的集合_leetcode

[ESTL] lc645. 错误的集合(STL+数学+哈希表)