题目浅析

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

  • 简单地说,就是求一个数组的每个值,与另一个数组子序列和的关系,在子序列和不超过这个值的前提下,求最长子序列的长度。

思路分享

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

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
vector<int> answerQueries(vector<int>& nums, vector<int>& queries) {
ranges::sort(nums.begin(), nums.end()); // 排序
partial_sum(nums.begin(), nums.end(), nums.begin()); // 前缀和
for (int &q : queries) {
//q = ranges::upper_bound(nums, q) - nums.begin();
q = ranges::lower_bound(nums, q+1) - nums.begin();
}
return queries;
}
};