problem
475. Heaters
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的最小值。
参考
1. Leetcode_475. Heaters;
2. GrandYang;
完