双指针+枚举
2026-06-05 22:30:47
发布于:上海
13阅读
0回复
0点赞
这道题其实很简单,双指针+枚举
用一个i便利头,用j便利尾,算出合法区间和,取最大的就行了
上代码!
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int a[1000000];
for (int i=1;i<=n;i++){
cin>>a[i];
}
sort (a+1,a+1+n);
int sum=0;
for (int i=1;i<=n;i++){
for (int j=n;j>=i;j--){
if (a[j]-a[i]<=k){
int ans=0;
for (int z=i;z<=j;z++){
ans+=a[z];
}
sum=max(ans,sum);
}
}
}
cout<<sum;
}
这里空空如也







有帮助,赞一个