1、题目名称
Contains Duplicate(判断数组内是否有重复元素)
2、题目地址
https://leetcode.com/problems/contains-duplicate/
3、题目内容
英文: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
4、解题方法1
先将传入的数组进行排序,排序后查看相邻元素,如果存在相邻元素相同的情况,则说明原数组内有至少两个元素相同。
Java代码如下:
import java.util.Arrays;
/**
* @功能说明:LeetCode 217 - Contains Duplicate
* @开发人员:Tsybius2014
* @开发时间:2015年10月12日
*/
public class Solution {
/**
* 查看数组内是否有重复元素
* @param nums
* @return
*/
public boolean containsDuplicate(int[] nums) {
if (nums.length <= 1) {
return false;
}
Arrays.sort(nums);
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i - 1]) {
return true;
}
}
return false;
}
}
5、解题方法2
遍历数组,将数组内的值逐个放入到一个HashMap中,如果遍历到某元素是发现该元素值已经在HashMap中存在,则说明原数组中存在重复的元素。
Java代码如下:
import java.util.HashMap;
/**
* @功能说明:LeetCode 217 - Contains Duplicate
* @开发人员:Tsybius2014
* @开发时间:2015年10月12日
*/
public class Solution {
/**
* 查看数组内是否有重复元素
* @param nums
* @return
*/
public boolean containsDuplicate(int[] nums) {
if (nums.length <= 1) {
return false;
}
HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; i++) {
if (hashMap.containsKey(nums[i])) {
return true;
} else {
hashMap.put(nums[i], i);
}
}
return false;
}
}
END