Continuous Range K Duplicate
题目:
给一个array,然后给一个k,让check连续的k个integer是否含有duplicates。
解题思路:
用一个size大小为k的set就好。
代码:
给一个array,然后给一个k,让check连续的k个integer是否含有duplicates。
解题思路:
用一个size大小为k的set就好。
代码:
public class ContinuousRangeKDuplicate { public boolean check(int[] nums, int k){ if(nums == null || nums.length == 0){ return false; } Set<Integer> set = new HashSet<>(); Queue<Integer> queue = new LinkedList<>(); for(int i = 0; i <= nums.length - 1; i++){ System.out.println(set); if(set.size() == k){ int temp = queue.poll(); set.remove(temp); } if(set.size() != 0){ if(set.contains(nums[i])){ return true; } } set.add(nums[i]); queue.offer(nums[i]); } return false; } public static void main(String[] args){ ContinuousRangeKDuplicate continuousRangeKDuplicate = new ContinuousRangeKDuplicate(); int[] input = new int[]{1, 2, 3, 4, 1}; boolean rst = continuousRangeKDuplicate.check(input, 5); System.out.println(rst); } }

Comments
Post a Comment