LeetCode:Contains Duplicate

风格不统一 提交于 2019-11-27 06:04:17

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!