475. 供暖器
2020-02-06
1.題目描述
輸入房屋和供暖器的位置,輸出供暖器的最小加熱半徑2.題解
供暖器覆蓋了所有房屋相當于每個房屋在最小加熱半徑內都有供暖器即可,首先求出每一個房屋與 最近供暖器的距離,然后求出所有最小值的最大值即可。3.代碼
#include <iostream> #include <vector> #include <algorithm> using namespace std;class Solution { public:int findRadius(vector<int>& houses, vector<int>& heaters) {sort(houses.begin(),houses.end());sort(heaters.begin(),heaters.end());int l1=houses.size(),l2=heaters.size();int x[25010],mm;for (int i=0;i<l1;i++){mm=0x7fffffff;int j=0;while (j<l2&&houses[i]>=heaters[j]) j++;if (j-1>=0) mm=min(mm,houses[i]-heaters[j-1]);if (j<l2) mm=min(mm,heaters[j]-houses[i]);x[i]=mm;}mm=0;for (int i=0;i<l1;i++){mm=max(mm,x[i]);}return mm;} };int main(){Solution s;int a[4]={1,2,3,4},b[2]={1,4};vector<int>v1(a,a+4),v2(b,b+2);cout<<s.findRadius(v1,v2)<<endl;return 0; }總結
- 上一篇: ubuntu16.04 nginx安装
- 下一篇: ORA-04031: Unable To