2779. 数组的最大美丽值
题意
给你一个数组和一个整数 k,数组里面每个数都只能操作一次:加上区间\([-k,k]\)里的数。问你最终由相等元素组成的最长子序列的长度
双指针的妙用!
思路
先排序,前后双指针取差值在2k之间的区间,此区间的所有数均可以操作为同一个属,ans统计最大值
代码
class Solution {
public:
int maximumBeauty(vector<int>& a, int k) {
sort(a.begin() , a.end());
int ans = 1 , n = a.size();
k <<= 1;
for(int i = 0, j = 0; i < n; ++ i){
while(a[i] > a[j] + k) ++ j;
ans = max(ans, i - j + 1);
}
return ans;
}
};
标签:周赛,int,354,数组,ans,leetcode,指针
From: https://www.cnblogs.com/Qiansui/p/17578629.html