class Solution {
public int findTheDistanceValue(int[] arr1, int[] arr2, int d) {
int val = 0;
for (int i = 0; i < arr1.length; i ++) {
boolean flag = true;
for (int j = 0; j < arr2.length; j ++) {
if (Math.abs(arr1[i] - arr2[j]) <= d || Math.abs(arr1[i] - arr2[j]) <= d) {
flag = false;
break;
}
}
if (flag) val ++;
}
return val;
}
}
treeset:
class Solution {
public int findTheDistanceValue(int[] arr1, int[] arr2, int d) {
int res = 0;
TreeSet<Integer> ts = new TreeSet<>();
for(int n : arr2)
ts.add(n);
for(int n : arr1){
Integer higher = ts.ceiling(n);
Integer lower = ts.floor(n);
int diff = 0;
if(higher == null){
diff = Math.abs(lower - n);
}else if(lower == null){
diff = Math.abs(higher - n);
}else{
diff = Math.min(higher - n, n - lower);
}
if(diff > d)
res++;
}
return res;
}
}