AT3524 [ARC082A] Together题解
77777_1031 · · 题解
题目传送门
更好的阅读体验
题外话:好像莫得人用双指针诶
Part 1 题意分析
题意:给你
分析:因为我们要尽可能的把小的数往大加,大的数减小,但我们最大只能加
总结:我们可以先排个序,然后双指针寻找一个差为
Part 2 有关双指针
(dalao自动略过,不对,dalao们不会来康我的题解)
双指针算法是指利用两个指针遍历数组(链表),左右指针相向前进或同向前进,在遍历过程中根据某种限制条件进行筛选,通常可以把时间复杂度降低至
一些阔以练习双指针的题
Part 3 代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100001];
int l=1,r=1,t=0;
int ans=0;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
if((a[n]-a[1])<=2){cout<<n<<endl;return 0;}
while(r<=n){
if((a[r]-a[l])<=2){
r++;
t++;
if(t>ans)ans=t;
}
else{l++;t--;}
}
cout<<ans<<endl;
return 0;//完结撒花~~
}
AC记录
我的博客
最后的话:看都看了,不点个赞再走嘛?谢谢呐。