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]))

 

posted @ 2020-04-17 23:12  人间烟火地三鲜  阅读(203)  评论(0编辑  收藏  举报