Easy-题目41:219. Contains Duplicate II

原创 2016年05月30日 20:30:15

题目原文:
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and jis at most k.
题目大意:
给一个数组nums和整数K,问是否存在两个下标i和j,使得nums[i]=nums[j],并且|i-j|≤k。
题目分析:
使用HashMap记录一组key-value对,其中key为数组中元素的值,value为所在下标。
当key不重复时加入HashMap即可,如果发现了重复的key,则判断当前数组下标和value值(分别对应题干中的i和j)绝对值是否≤k。
源码:(language:java)

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

成绩:
16ms,beats 5.31%,众数14ms,30.23%
cmershen的碎碎念:
使用了trivial的解法因此成绩低于平均值(但不算太差),可能是HashMap浪费了开销,discuss中似乎有基于快排的解法,有待日后研读。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

【LeetCode-面试算法经典-Java实现】【219-Contains Duplicate II(包含重复元素II)】

【219-Contains Duplicate II(包含重复元素II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月29日 06:36
  • 3428

219. Contains Duplicate II [easy] (Python)

题目链接https://leetcode.com/problems/contains-duplicate-ii/题目原文 Given an array of integers and an int...
  • coder_orz
  • coder_orz
  • 2016年06月14日 19:59
  • 1758

[C语言][LeetCode][219]Contains Duplicate II

题目Contains Duplicate II Given an array of integers and an integer k, find out whether there are tw...
  • Timsley
  • Timsley
  • 2015年08月28日 22:45
  • 835

219. Contains Duplicate II (python)

Given an array of integers and an integer k, find out whether there are two distinct indices i and ...
  • qq_28119401
  • qq_28119401
  • 2016年10月30日 16:11
  • 217

leetcode_c++:Contains Duplicate II(219)

题目Given an array of integers and an integer k, find out whether there are two distinct indices i and...
  • mijian1207mijian
  • mijian1207mijian
  • 2016年06月18日 13:33
  • 272

LeetCode 219. Contains Duplicate II(检查重复)

原题网址:https://leetcode.com/problems/contains-duplicate-ii/ Given an array of integers and an integer...
  • jmspan
  • jmspan
  • 2016年05月06日 07:16
  • 245

leetcode 219: Contains Duplicate II

leetcode 219: Contains Duplicate II java c++ python
  • xudli
  • xudli
  • 2015年05月29日 15:02
  • 8530

leetcode_c++:Contains Duplicate(217)

题目Given an array of integers, find if the array contains any duplicates. Your function should return...
  • mijian1207mijian
  • mijian1207mijian
  • 2016年06月18日 12:40
  • 238

(LeetCode)Contains Duplicate II --- 查找重复的元素升级版

(LeetCode)Contains Duplicate II --- 查找重复的元素升级版
  • u012965373
  • u012965373
  • 2016年07月27日 10:23
  • 504

LeetCode 219:Contains Duplicate II

Given an array of integers and an integer k, find out whether there there are two distinct indices i...
  • sunao2002002
  • sunao2002002
  • 2015年05月31日 18:41
  • 3738
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目41:219. Contains Duplicate II
举报原因:
原因补充:

(最多只允许输入30个字)