Leetcode-217-Contains Duplicate

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;
    }

 

 

解法二性能:




 

猜你喜欢

转载自logicluo.iteye.com/blog/2238155