美文网首页
leetcode第217题、219题存在重复元素

leetcode第217题、219题存在重复元素

作者: CoderAPang | 来源:发表于2018-09-05 16:55 被阅读0次

@(LeetCode)[哈希, 数组]

217题目描述

给定一个整数数组,判断是否存在重复元素。

如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

示例 1:

输入: [1,2,3,1]
输出: true

示例 2:

输入: [1,2,3,4]
输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2]
输出: true

解答

用hashMap来判断元素是否存在

class Solution {
    public boolean containsDuplicate(int[] nums) {
        HashMap map = new HashMap();
        for(int i=0;i<nums.length;i++){
            if(map.get(nums[i])==null)map.put(nums[i],true);
            else return true;
        }
        return false;
    }
}

219题目描述

给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。

示例 1:

输入: nums = [1,2,3,1], k = 3
输出: true
示例 2:

输入: nums = [1,0,1,1], k = 1
输出: true
示例 3:

输入: nums = [1,2,3,1,2,3], k = 2
输出: false

解答

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap map = new HashMap();
        for(int i=0;i<nums.length;i++){
            if(map.get(nums[i])==null)map.put(nums[i],i);
            else if((k+(Integer)map.get(nums[i]))>=i) return true;
               else map.put(nums[i],i);
        }
        return false;
    }
}

相关文章

网友评论

      本文标题:leetcode第217题、219题存在重复元素

      本文链接:https://www.haomeiwen.com/subject/gczawftx.html