Time O(nlogn)
Space O(n)
class Solution {
public int kEmptySlots(int[] flowers, int k) {
if (flowers.length == 1 && k == 0) return 1;
TreeSet < Integer > set = new TreeSet < Integer > ();
for (int i = 0; i < flowers.length; i++) {
int curr = flowers[i];
Integer higher = set.higher(curr);
if (higher != null && higher - curr == k + 1) {
return i + 1;
}
Integer lower = set.lower(curr);
if (lower != null && curr - lower == k + 1) {
return i + 1;
}
set.add(curr);
}
return -1;
}
}