【双指针】供暖器

改一下输入输出格式,输入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(al-hr),如果r+1<=m && minn >= abs(al-hr+1),则更新minn,r++。最好通过max(minn,ans)找到最终的ans。

3代码实现

cpp 复制代码
#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;
}
相关推荐
梦梦代码精13 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
随意起个昵称13 小时前
线性dp-综合刷题1(Not Alone)
算法·动态规划
如何原谅奋力过但无声14 小时前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
皆圥忈14 小时前
磁盘物理结构与文件系统基础讲解
linux·算法
数据仓库搬砖人14 小时前
用 LangGraph 从零搭一个客服 Agent:多轮对话 + 工具调用全流程
算法
GuWenyue14 小时前
告别JS类型坑!Ts为什么在ai时代逐渐成为"第一"语言
前端·算法·typescript
子琦啊14 小时前
哈希与前缀和
算法·哈希算法
Deep-w14 小时前
【MATLAB】基于离散 LQR 的车辆横向轨迹跟踪控制方法研究
开发语言·算法·matlab
Peter·Pan爱编程15 小时前
23. 算法库:用算法代替手写循环
c++·人工智能·算法
小欣加油15 小时前
leetcode2161 根据给定数字划分数组
数据结构·c++·算法·leetcode·职场和发展