洛谷---P1102 A-B 数对---双指针算法
算法 --- 指针 洛谷
2023-09-14 09:12:40 时间
题目链接:
P1102 A-B 数对
题目描述:
双指针算法(快慢指针)算法
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
int n,c;
int arr[200020];
int main()
{
scanf("%d %d",&n,&c);
for(int i=1;i<=n;++i) cin>>arr[i];
sort(arr+1,arr+1+n);
//对输入的数组进行排序
ll res=0;//因为数据使用int会撑爆,所以用ll
//三个指针:快指针a,慢指针b1,b2;
for(int a=1,b1=1,b2=1;a<=n;++a)
{
while(b1<=a && arr[a]-arr[b1]>=c ) b1++;
while(b2<=a && arr[a]-arr[b2]>c ) b2++;
res+=b1-b2;
}
printf("%lld",res);
return 0;
}
总结:自己需要多模拟以及多练习这些题目,自己写还是写不出来的。
相关文章
- 11种经典滤波算法「建议收藏」
- OHEM(Online Hard Example Mining )算法
- 大数运算的算法设计和C++实现[通俗易懂]
- 大数的阶乘算法
- EK (Edmond-Karp) 算法 学习笔记
- 读书笔记之算法40讲
- 算法基础-数学知识
- 滑动窗口算法学习
- 算法学习之路 | 冒泡排序[Php]
- 如何提升深度学习算法效率,谷歌有这些绝招
- 交互式调整视觉算法参数(一)-图像阈值参数
- 检索算法---二分查找
- React源码分析4-深度理解diff算法_2023-02-20
- 二叉树——堆的排序 TOP-K算法
- 问题 1480: [蓝桥杯][算法提高VIP]模拟计算器
- Redis集群实现主节点选举算法简介(redis选举主节点算法)
- Python实现的Kmeans++算法实例
- 算法之排序算法的算法思想和使用场景总结