zoukankan      html  css  js  c++  java
  • Contains Duplicate

    题目:

    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.

    解析:

    首先想到的是对容器元素排序后,若有相等的元素则必然相邻,可以利用sort和unique方法,unique将无重复的元素移动到序列前端,返回无重复序列的下一个位置的迭代器。

    1 class Solution {
    2 public:
    3     bool containsDuplicate(vector<int>& nums) { //时间复杂度由于set
    4         sort(nums.begin(),nums.end());
    5         return unique(nums.begin(),nums.end()) != nums.end();
    6     }
    7 };

    第二种解法是用具有存放不重复元素的容器,比如map或者set

    1 class Solution {
    2 public:
    3     bool containsDuplicate(vector<int>& nums) {
    4         set<int> s(nums.begin(),nums.end());
    5         return nums.size() != s.size();
    6     }
    7 };
  • 相关阅读:
    Design Pattern Explained
    StringBuilder or StringBuffer
    Algorithms
    Difference between pages and blocks
    Date Time Calendar
    Math if fun
    Sublime Text
    Java Regex
    Learning C
    跨域通信/跨域上传浅析
  • 原文地址:https://www.cnblogs.com/raichen/p/4935088.html
Copyright © 2011-2022 走看看