【双指针】供暖器

改一下输入输出格式,输入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代码实现

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;
}
相关推荐
StudyWinter10 分钟前
【c++】thread总结
开发语言·c++·算法
饕餮怪程序猿16 分钟前
贪心算法经典应用:活动选择问题(C++实现)
c++·算法·贪心算法
光羽隹衡24 分钟前
决策树项目——电信客户流失预测
算法·决策树·机器学习
TL滕25 分钟前
从0开始学算法——第二十一天(高级链表操作)
笔记·学习·算法
CoovallyAIHub25 分钟前
无人机低空视觉数据集全景解读:从单机感知到具身智能的跨越
深度学习·算法·计算机视觉
学编程就要猛25 分钟前
算法:1.移动零
java·算法
杜子不疼.25 分钟前
【LeetCode 35 & 69_二分查找】搜索插入位置 & x的平方根
算法·leetcode·职场和发展
YYDS31426 分钟前
次小生成树
c++·算法·深度优先·图论·lca最近公共祖先·次小生成树
xu_yule29 分钟前
算法基础(区间DP)
数据结构·c++·算法·动态规划·区间dp
天骄t30 分钟前
信号VS共享内存:进程通信谁更强?
算法