Leetcode-217-Contains Duplicate

本文介绍了两种方法来解决数组中是否存在重复元素的问题:一种是排序后比较相邻元素,另一种是利用Set数据结构来检查元素的唯一性。通过这两种方法,可以高效地判断数组中是否存在重复值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Contains Duplicate

来自 <https://leetcode.com/problems/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.

 

题目解读

给定一个整型数组,判断数组中是否含有重复的数。如果数组中存在元素至少出现两次,则返回true,否则如果数组中的每个元素都是不同的,则返回false

 

解析:

解法一:首先将数组中的元素进行排序,然后判断数组中是否存在两个相邻的数组元素相同。如果存在,则返回true,否则返回false

 

解法二:

使用set,因为set中的元素都是不相同的,所以逐个取出数组中的元素放入到set中,在放入set之前,先判断set中是否包含此元素,如果包含则返回true.否则将其加入到set中。直到数组中所有的元素全部添加至set中。返回false

 

 

解法一代码:

    public boolean containsDuplicate(int[] nums) {
        if(null == nums)
    	   return false;
       Arrays.sort(nums);
       for(int i=nums.length-1; i>0; i--)
    	   if(nums[i] == nums[i-1]) {
    		   return true;
    	   }
    		   
       return false;
    }

 

解法一性能:



 

 

解法二代码:

    public boolean containsDuplicate(int[] nums) {
        if(null == nums) 
			return false;
		Set<Integer> result = new HashSet<Integer>();
		for(int i=0; i<nums.length; i++) {
			if(result.contains(nums[i]))
				return true;
			else
				result.add(nums[i]);
		}
		return false;
    }

 

 

解法二性能:




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值