美文网首页
LeetCode算法解题集:Contains Duplicate

LeetCode算法解题集:Contains Duplicate

作者: 海阔天空的博客 | 来源:发表于2021-11-24 07:19 被阅读0次

    题目:
    Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
    https://leetcode.com/problems/contains-duplicate/

    思路:
    思路一:两层循环,第一次循环里取一个数,在第二次循环里去其比较后面的数字是之否相等。算法复杂度双层递减循环,结果超时。
    思路二:一层循环,使用map保存该数组,保存之前先判断是否存在,存在则返回true,不存在则记录。算法复杂度仍然比较高
    思路三:看到讨论帖子里的思路,先排序,然后挨个比较前后的顺序,相等则返回true,不相等继续只结尾返回false。代码如下

    代码:

    {
    public:
        bool containsDuplicate(vector<int>& nums)
        {
            sort(nums.begin(), nums.end());
            for (size_t i = 1; i < nums.size(); i++)
            {
                if (nums[i - 1] == nums[i])
                {
                    return true;
                }
            }
            return false;
        }
    }
    

    总结:
    1、简化思路,使用现有的api接口
    2、尽量不要使用双重循环来解决问题。

    相关文章

      网友评论

          本文标题:LeetCode算法解题集:Contains Duplicate

          本文链接:https://www.haomeiwen.com/subject/yclgoltx.html