Contains Duplicate

胜者先胜而后求战,败者先站而后求胜

存在重复元素

进入 Leet Code 查看题目:https://leetcode-cn.com/problems/contains-duplicate/

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

示例1:

1
2
输入:nums = [1,2,3,1]
输出:true

示例2:

1
2
输入:nums = [1,2,3,4]
输出:false

分析

如果是一个有序的数组,那么只需要判断相邻元素是否相等就可以推断是否存在重复元素。

所以第一步可以先将数组进行排序,通过循环两两比较即可。

进入 Leet Code 查看:https://leetcode-cn.com/problems/contains-duplicate/solution/cun-zai-zhong-fu-yuan-su-pai-xu-tu-jie-b-ws75/

图解

同构字符串.gif

代码

1
2
3
4
5
6
7
8
9
10
11
class Solution {
    public boolean containsDuplicate(int[] nums) {
        Arrays.sort(nums);
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] == nums[i + 1]) {
                return true;
            }
        }
        return false;
    }
}