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

【双指针】供暖器

在这里插入图片描述
改一下输入输出格式,输入n,m,表示n个房屋,m个供暖器,接下来输入n个整数和m个整数。输出一个整数,表示最小的供暖半径。

1 变量定义

1)a数组:存储房屋的位置
2)h数组:存储供暖器的位置
3)l变量:停留在a数组
4)r变量:停留在h数组
5)minn变量:定义为房屋到供暖器的最小距离
6) ans变量:定义为找到的最小半径

2 算法流程

l遍历a数组的元素,初始化minn=abs(a[l]-h[r]),如果r+1<=m && minn >= abs(a[l]-h[r+1]),则更新minn,r++。最好通过max(minn,ans)找到最终的ans。

3代码实现

#include<bits/stdc++.h>
using namespace std;
int l,r,n,m;
int a[100005],h[100005];
int main(){cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>h[i];sort(a+1,a+n+1);sort(h+1,h+m+1); l=1;r=1;int ans=0;for(int i=1;i<=n;i++){l=i;int minn=abs(h[r]-a[l]);while(r+1<=m&&abs(h[r+1]-a[l])<=minn){minn=abs(h[r+1]-a[l]);r++;} ans=max(ans,minn);} cout<<ans;return 0;
}

相关文章:

  • 2025春训第二十场
  • 【51】快速获取数码管段选表(含小数点)及字母表的工具(分享)
  • CMake基础及操作笔记
  • 布隆过滤器深度解析
  • muduo库EventLoopThread模块详解——C++
  • 牛客OJ在线编程常见输入输出练习--Java版
  • CE17.【C++ Cont】练习题组17(堆专题)
  • 18-总线IIC
  • Java大师成长计划之第25天:Spring生态与微服务架构之容错与断路器模式
  • 软件安全检测报告:如何全面评估企业级办公软件安全性?
  • .NET 中管理 Web API 文档的两种方式
  • Oracle APEX IR报表下载CSV文件的方法
  • lc42接雨水
  • 江协科技OLED移植hal库
  • gcc 源码目录文件夹功能简介
  • 2020CCPC河南省赛题解
  • c++动态链接库
  • 电子电路:电位器和可变电阻是同一个东西吗?
  • CT重建笔记(五)—2D平行束投影公式
  • [已解决] LaTeX “Unicode character“ 报错 (中文字符处理)
  • 因救心梗同学缺席职教高考的姜昭鹏顺利完成补考
  • 大环线呼之欲出,“金三角”跑起来了
  • 中国军网:带你揭开3所新调整组建军队院校的神秘面纱
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次
  • 人民日报评外卖平台被约谈:摒弃恶性竞争,实现行业健康发展
  • 5月12日-14日,上海小升初民办初中进行网上报名