LeetCode_217. Contains Duplicate

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode_217. Contains Duplicate相关的知识,希望对你有一定的参考价值。

 

217. Contains Duplicate

Easy

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

 

package leetcode.easy;

public class ContainsDuplicate {
	public boolean containsDuplicate1(int[] nums) {
		for (int i = 0; i < nums.length; ++i) {
			for (int j = 0; j < i; ++j) {
				if (nums[j] == nums[i]) {
					return true;
				}
			}
		}
		return false;
	}
	// Time Limit Exceeded

	public boolean containsDuplicate2(int[] nums) {
		java.util.Arrays.sort(nums);
		for (int i = 0; i < nums.length - 1; ++i) {
			if (nums[i] == nums[i + 1]) {
				return true;
			}
		}
		return false;
	}

	public boolean containsDuplicate3(int[] nums) {
		java.util.Set<Integer> set = new java.util.HashSet<>(nums.length);
		for (int x : nums) {
			if (set.contains(x)) {
				return true;
			} else {
				set.add(x);
			}
		}
		return false;
	}

	@org.junit.Test
	public void test1() {
		int[] nums1 = { 1, 2, 3, 1 };
		int[] nums2 = { 1, 2, 3, 4 };
		int[] nums3 = { 1, 1, 1, 3, 3, 4, 3, 2, 4, 2 };
		System.out.println(containsDuplicate1(nums1));
		System.out.println(containsDuplicate1(nums2));
		System.out.println(containsDuplicate1(nums3));
	}

	@org.junit.Test
	public void test2() {
		int[] nums1 = { 1, 2, 3, 1 };
		int[] nums2 = { 1, 2, 3, 4 };
		int[] nums3 = { 1, 1, 1, 3, 3, 4, 3, 2, 4, 2 };
		System.out.println(containsDuplicate2(nums1));
		System.out.println(containsDuplicate2(nums2));
		System.out.println(containsDuplicate2(nums3));
	}

	@org.junit.Test
	public void test3() {
		int[] nums1 = { 1, 2, 3, 1 };
		int[] nums2 = { 1, 2, 3, 4 };
		int[] nums3 = { 1, 1, 1, 3, 3, 4, 3, 2, 4, 2 };
		System.out.println(containsDuplicate3(nums1));
		System.out.println(containsDuplicate3(nums2));
		System.out.println(containsDuplicate3(nums3));
	}
}

 

以上是关于LeetCode_217. Contains Duplicate的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 217 Contains Duplicate

217. Contains Duplicate (leetcode)

leetcode-217-Contains Duplicate

[leetcode]217.Contains Duplicate

LeetCode第217题Contains Duplicate

LeetCode217. Contains Duplicate 解题小结