码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode: Contains Duplicate II

时间:2015-12-17 08:12:55      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

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 j is at most k.

HashMap:

 1 public class Solution {
 2     public boolean containsNearbyDuplicate(int[] nums, int k) {
 3         if (nums==null || nums.length==0) return false;
 4         HashMap<Integer, ArrayList<Integer>> map = new HashMap<Integer, ArrayList<Integer>>();
 5         for (int i=0; i<nums.length; i++) {
 6             if (!map.containsKey(nums[i])) {
 7                 ArrayList<Integer> list = new ArrayList<Integer>();
 8                 list.add(i);
 9                 map.put(nums[i], list);
10             }
11             else {
12                 ArrayList<Integer> list = map.get(nums[i]);
13                 for (int index : list) {
14                     if (Math.abs(index-i) <= k) return true;
15                 }
16                 list.add(i);
17             }
18         }
19         return false;
20     }
21 }

 

Leetcode: Contains Duplicate II

标签:

原文地址:http://www.cnblogs.com/EdwardLiu/p/5052896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!