存在重复元素 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.

Example 1:

Input: [1,2,3,1]
Output: true

Example 2:

Input: [1,2,3,4]
Output: false

Example 3:

Input: [1,1,1,3,3,4,3,2,4,2]
Output: true

思路&题解

判断数组内是否存在相同元素,由于题干没有特殊要求,因此可以选用双重循环判断,每一个元素都与其他元素作比较,发现相同元素返回true,直到遍历结束则返回fasle。

除此之外也可以利用集合特性来解题。由于集合不能存放两个相同元素,因此只需一次遍历操作,如果元素不在集合中,则放入集合。如果已经存在则终止循环,返回tru,遍历结束返回false。

public boolean containsDuplicate(int[] nums) {
    Set<Integer> set = new HashSet<Integer>();
    for(int i:nums){
        if(set.contains(i)){
            return true;
        }
        set.add(i);
    }
    return false;
}

知识点分析

powered by Gitbook最近更新 2019-04-16

results matching ""

    No results matching ""