package com.interview.flag.o;
import java.util.HashMap;
import java.util.Map;
/**
* Created_By: stefanie
* Date: 15-2-3
* Time: 上午10:14
*/
public class O22_ValidArrayWindowRange {
public boolean valid(int[] array, int K, int L){
Map<Integer, Integer> map = new HashMap();
for(int i = 0; i < array.length; i++){
if(i >= K) map.remove(array[i-K]/(L + 1));
int key = array[i]/(L+1);
if(map.containsKey(key)
|| map.containsKey(key + 1) && map.get(key + 1) - array[i] <= L
|| map.containsKey(key - 1) && array[i] - map.get(key - 1) <= L){
return true;
}
map.put(key, array[i]);
}
return false;
}
public static void main(String[] args){
O22_ValidArrayWindowRange checker = new O22_ValidArrayWindowRange();
int[] array = new int[]{1,12,4,20,1,5,8,6};
System.out.println(checker.valid(array, 2, 1));//false
System.out.println(checker.valid(array, 2, 2));//true
System.out.println(checker.valid(array, 3, 1));//true
}
}