Leetcode 475 Solution

This article provides solution to leetcode question 475 (heaters)

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; } };