题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个整数数组和一个数字 k,让你对每一个位的数字可以做一个操作也就是上下浮动不超过 k 的数值,最后整个数组最多的数字的数量就是要求的结果。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
int maximumBeauty(vector<int>& nums, int k) {
int ans = 1;
int left = 0;
sort(nums.begin(), nums.end());
for (int i = 0; i < nums.size(); i++) {
while (nums[i]-k > nums[left]+k) {
left++;
}
ans = max(ans, i-left+1);
}
return ans;
}
};