Heaters
Thoughts
Code
class Solution {
public int findRadius(int[] houses, int[] heaters) {
Arrays.sort(heaters);
int max = 0;
for (int house : houses) {
int start = 0, end = heaters.length;
while (start < end) {
int mid = start + (end - start) / 2;
if (heaters[mid] < house) {
start = mid + 1;
} else {
end = mid;
}
}
int dist = start < heaters.length ? Math.abs(heaters[start] - house) : Integer.MAX_VALUE;
dist = start > 0 ? Math.min(dist, Math.abs(heaters[start - 1] - house)) : dist;
max = Math.max(max, dist);
}
return max;
}
}Analysis
Last updated