LeetCode 217. Contains Duplicate

来源:互联网 发布:vi命令行编程 编辑:程序博客网 时间:2024/05/29 13:18

217. Contains Duplicate

Description

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.

Solution

  • 题意即判断一个数组中是否存在出现次数大于1的数。
  • 用map统计数字出现次数即可,代码如下。
class Solution {public:    bool containsDuplicate(vector<int>& nums) {        if (!nums.size()) return false;        map<int,int> m;        int index = 0;        for (int i = 0;i < nums.size();i++) {            if (m.count(nums[i]) == 0) {                m[nums[i]] = index++;            }            else                 return true;        }        return false;    }};
  • 也可以用set存储所有的数字,如果set的大小和数组的大小不一样,说明有相同的数字,代码如下。
class Solution {  public:    bool containsDuplicate(vector<int>& nums) {        return set<int>(nums.begin(), nums.end()).size() < nums.size();    }};
原创粉丝点击