problem
solution1:
class Solution { public: int findRadius(vector<int>& houses, vector<int>& heaters){ int ans = 0, cur = 0, j = 0; sort(houses.begin(), houses.end()); sort(heaters.begin(), heaters.end()); for(int i=0; i<houses.size(); i++) { cur = houses[i]; while(j<heaters.size()-1 && abs(heaters[j+1]-cur)<=abs(heaters[j]-cur)) { j++; } ans = max(ans, abs(heaters[j]-cur)); } return ans; } };
博主的理解就是计算每个house对应的能够cover到的最小值,注意两个数组有先进行排序哦,然后cover每个house的最小值中的最大值即为所求解的能够cover每个house的最小值。
参考
2. GrandYang;
完