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

Posted panweiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1403. 非递增顺序的最小子序列相关的知识,希望对你有一定的参考价值。

技术图片

 

 技术图片

 

 技术图片

 技术图片

 

思路:
1、降序排列nums;
2、不断从nums中取出最大元素追加到res中,直到res元素的和大于nums;
3、返回res。

 

 1 class Solution(object):
 2     def minSubsequence(self, nums):
 3         """
 4         :type nums: List[int]
 5         :rtype: List[int]
 6         """
 7         # 降序排列
 8         nums.sort(reverse=True)
 9         # 返回值
10         res = []
11         # 当子序列元素的和大于原list中剩余元素的和时,结束循环
12         while sum(res) <= sum(nums):
13             # 将原list中的最大元素加到res末尾
14             res.append(nums[0])
15             # 从原list中删除最大元素
16             nums.pop(0)
17         # print(res, nums)
18         return res
19 
20 
21 if __name__ == __main__:
22     solution = Solution()
23     print(solution.minSubsequence(nums=[4, 3, 10, 9, 8]))

 

以上是关于1403. 非递增顺序的最小子序列的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

LC1403 非递增顺序的最小子序列

LeetCode 1403 非递增顺序的最小子序列[贪心] HERODING的LeetCode之路