LeetCode Algorithm 1403. 非递增顺序的最小子序列

题目链接:1403. 非递增顺序的最小子序列

Ideas

算法:迭代
数据结构:无
思路:先把nums排个序,然后从后往前取,如果当前取得数之和大于剩下的数,则break。

Code

C++

class Solution {
    
    
public:
    vector<int> minSubsequence(vector<int>& nums) {
    
    
        vector<int> ans;
        int total = accumulate(nums.begin(), nums.end(), 0), curSum = 0;

        sort(nums.begin(), nums.end());
        for (int i = nums.size() - 1; i > -1; i--) {
    
    
            curSum += nums[i];
            ans.emplace_back(nums[i]);
            if (total - curSum < curSum) {
    
    
                break;
            }
        }
        return ans;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_43336281/article/details/126254388