IT/Computer Science

[Leetcode/Array, Greedy, Sorting] 1403. Minimum Subsequence in Non-Increasing Order

Diana Kang 2025. 5. 27. 00:51

class Solution:
    def minSubsequence(self, nums: List[int]) -> List[int]:
        nums.sort(reverse=True)
        totalSum = sum(nums)

        result = []
        current = 0

        for num in nums:
            result.append(num)
            current += num
            if current > totalSum - current:
                break
        return result
class Solution:
    def minSubsequence(self, nums: List[int]) -> List[int]:

            total_sum = sum(nums)
            sorted_nums = sorted(nums, reverse=True)

            running = 0
            result = []

            for i, n in enumerate(sorted_nums):
                result.append(n)
                running += n
                if running > (total_sum - running):
                    return result

            return result