第一题
这题先将nums排序,再算nums的前缀和并存入nn数组,最后将queries中的每个数字与nn比较大小,如第一次大于当前元素,则返回当前nn下标即可
class Solution {
public:
vector<int> answerQueries(vector<int>& nums, vector<int>& queries) {
sort(nums.begin(),nums.end());
int n = nums.size();
int nn[n];
nn[0] = nums[0];
for(int i = 1 ; i < n ; i ++){
nn[i] = nn[i - 1] + nums[i];
}
vector<int> aa;
for(int x : queries){
for(int i = 0 ; i < n ; i ++)
{
if(x < nn[i]){
aa.push_back(i);
break;
}
if(x >= nn[n - 1]){
aa.push_back(n);
break;
}
}
}
//for(int x : nn)cout << x << endl;
return aa;
}
};
第二题
遍历s,如不为*则填入ret
如果为*则弹出ret最后的字符
class Solution {
public:
string removeStars(string s) {
string ret;
for(auto c:s)
{
if( c != '*' )
ret+=c;
else
ret.pop_back();
}
return ret;
}
};