题解
简单题,对于“子序列 是由一个数组删除某些元素(也可以不删除)但不改变剩余元素顺序得到的一个数组。”
文章所给出的这句话的意思是即可以随意的更改顺序也不会影响结果,那么就对数组从小到大排列,一个一个判断,看满足要求的最长序列。
代码
class Solution {
public:
vector<int> answerQueries(vector<int>& nums, vector<int>& queries) {
const int maxn = 1e6+5;
int n = nums.size();
int m = queries.size();
sort(nums.begin(),nums.end());
int sum[maxn];
vector<int>ans;
sum[0] = 0;
for(int i = 0; i < m; i++){
int flag = 1;
sum[i] = 0;
for(int j = 0; j < n; j++){
sum[i] += nums[j];
if(sum[i] > queries[i]){
flag = 0;
ans.push_back(j);
break;
}
}
if(flag){
ans.push_back(n);
}
}
return ans;
}
};