当前位置: 首页 > news >正文

哈尔滨模板建站定制网站医院网站建设 中企动力

哈尔滨模板建站定制网站,医院网站建设 中企动力,展示产品的网站,亚泰润德建设有限公司网站该题思路最重要的一点是从房子角度出发,寻找每一个最优的供暖器,取所有房子最优结果的最大值。如果从供暖器角度出发,则很难思考。之后用两个变量分别指向房子数组和供暖器数组即可,整体依旧是双指针的经典思路。class Solution {…

该题思路最重要的一点是从房子角度出发,寻找每一个最优的供暖器,取所有房子最优结果的最大值。如果从供暖器角度出发,则很难思考。

之后用两个变量分别指向房子数组和供暖器数组即可,整体依旧是双指针的经典思路。

class Solution {
public:int findRadius(vector<int>& houses, vector<int>& heaters) {sort(houses.begin(), houses.end());sort(heaters.begin(), heaters.end());int l = 0, r = 0;   // l -> houses    r -> heatersint ans = 0;while(l < houses.size()){int house = houses[l];while(r + 1 < heaters.size() && abs(heaters[r + 1] - house) <= abs(heaters[r] - house)){r++;}ans = max(ans, abs(heaters[r] - house));l++;}return ans;}
};

另一种二分解法,其实是基于暴力枚举的改进。

对于数据量来说,我们可以枚举所有半径可能性,取最优解。而最优解天然带有二分属性,即如果当前半径可以使供暖器覆盖所有房屋,则最优解一定在区间左半,否则最优解在右半。根据该思路,我们可以写出如下基本框架。

int findRadius(vector<int>& houses, vector<int>& heaters) {sort(houses.begin(), houses.end());sort(heaters.begin(), heaters.end());int l = 0, r = (int)1e9;while(l < r){int mid = l + ((r - l) >> 1);if(check(houses, heaters, mid)){r = mid;}else{l = mid + 1;}}return r;}

之后的重点只需要放在check函数的实现上即可。

// 判断半径为radius时能否覆盖所有房屋bool check(vector<int>& houses, vector<int>& heaters, int radius){int n = houses.size(), m = heaters.size();// i -> houses  j -> heatersfor(int i = 0, j = 0; i < n; ++i){while(j < m && heaters[j] + radius < houses[i]) { j++; }    // 最小供暖器没覆盖if(j < m && heaters[j] - radius <= houses[i] && heaters[j] + radius >= houses[i]){continue;       // j号供暖器可覆盖i号房屋, 继续检测i + 1号房屋}else{return false;   // radius半径下存在 i 号房屋无法被覆盖}}return true;}

check函数实质上依旧使用的是双指针,其更像是从供暖器角度出发,设立区间,遍历房屋,观察房屋是否在该区间上,进而判断当前半径是否有覆盖。

这种区间移动的思想起初自己并没有想到,而且只考虑到要枚举所有半径,的确没想到用二分来快速查找结果。

http://www.dtcms.com/a/408522.html

相关文章:

  • 高端网站建设步骤免费的短视频素材库
  • 九脉堂是做网站的网络服务器可提供的常见服务有什么服务
  • 福田欧曼est前四后八手机网站优化需要注意什么
  • 怎样做企业官方网站免费空间送二级域名
  • 360网站提交入口地址网站备案org
  • wap网站前台模板php网站开发意思
  • docker容器的三大核心UnionFS(上)
  • 魏公村网站建设做MAD生肉网站
  • 化工企业网站模板罗湖网页设计
  • 网站模块化免费制作论坛网站
  • php 中英双语网站源码vue php 哪个做网站 好
  • 外贸石材网站wordpress 添加登录
  • 消防器材网站建设背景网站建设默认字体
  • 网站诊断分析案例网络规划设计师属于高级职称吗
  • 女式包包网站建设策划书网站建设简单合同模板
  • wordpress上传上限seo在线优化平台
  • 仿牌网站国外h5建站
  • 【读代码】Qwen3-VL多模态大模型的架构、训练与应用
  • 网站建设先进个人自荐2021国内军事新闻大事件
  • thinkphp做网站有什么好处wordpress广告设置
  • uzi粉丝做的网站河南网站推广电话
  • 哪个网站是用vue做的外贸网站产品
  • 自个做网站教程网站 硬件方案
  • 网站登记备案wordpress 自适应菜单
  • 网站域名解析ip查询东莞网站优化方法有哪些
  • 做教育培训网站甘肃省兰州市新闻
  • 建设网站需要具备什么条件wordpress 去掉描述的超链接
  • deals网站建设投资交易网站开发
  • 临沂网站建设公司招聘网站后台不能编辑
  • 海参企业网站怎么做西安建设银行工作招聘网站