Leetcode 475 Solution
This article provides solution to leetcode question 475 (heaters)
Access this page by simply typing in "lcs 475" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/heaters
Solution
class Solution {
public:
int findMinimumDistance(vector<int>& a, int target)
{
int l = 0;
int r = a.size() - 1;
while (l <= r)
{
int m = (l + r) / 2;
if (a[m] >= target)
r = m - 1;
else
l = m + 1;
}
int distance = INT_MAX;
if (r != -1)
distance = min(distance, abs(a[r] - target));
if (l != a.size())
distance = min(distance, abs(a[l] - target));
return distance;
}
int findRadius(vector<int>& houses, vector<int>& heaters) {
sort(heaters.begin(), heaters.end());
int min_radius = 0;
for (int i = 0; i < houses.size(); i++)
{
min_radius = max(min_radius, findMinimumDistance(heaters, houses[i]));
}
return min_radius;
}
};