1403题目,非递增顺序的最小子序列。
题目很简单,利用贪心的策略,对数组从大到小排序,然后尽量从前面取最小的满足题目要求的子数组即可。
我的bug出在对数组从大到小排序这里,报错代码以及报错信息如下。
vector<int> minSubsequence(vector<int>& nums) {
sort(nums.begin(),nums.end(),[](int n1,int n2){
return n1 >= n2;
});//head overflow
int sums = 0;
for(int n : nums) sums += n;
vector<int> ans;
int idx = 0;
int left = 0,right = sums;
while(idx < nums.size() && left <= right){
ans.push_back(nums[idx]);
left += nums[idx];
right -= nums[idx];
idx++;
}
return ans;
}
根据在代码加入return vector<int>();的方式,报错在函数中第一行,