zoukankan      html  css  js  c++  java
  • 【leetcode】1403. Minimum Subsequence in Non-Increasing Order

    题目如下:

    Given the array nums, obtain a subsequence of the array whose sum of elements is strictly greater than the sum of the non included elements in such subsequence. 

    If there are multiple solutions, return the subsequence with minimum size and if there still exist multiple solutions, return the subsequence with the maximum total sum of all its elements. A subsequence of an array can be obtained by erasing some (possibly zero) elements from the array. 

    Note that the solution with the given constraints is guaranteed to be unique. Also return the answer sorted in non-increasing order.

    Example 1:

    Input: nums = [4,3,10,9,8]
    Output: [10,9] 
    Explanation: The subsequences [10,9] and [10,8] are minimal such that the sum of their elements is strictly greater than 
    the sum of elements not included, however, the subsequence [10,9] has the maximum total sum of its elements. 

    Example 2:

    Input: nums = [4,4,7,6,7]
    Output: [7,7,6] 
    Explanation: The subsequence [7,7] has the sum of its elements equal to 14 which is not strictly greater than the sum of 
    elements not included (14 = 4 + 4 + 6). Therefore, the subsequence [7,6,7] is the minimal satisfying the conditions.
    Note the subsequence has to returned in non-decreasing order.

    Example 3:

    Input: nums = [6]
    Output: [6]

    Constraints:

    • 1 <= nums.length <= 500
    • 1 <= nums[i] <= 100

    解题思路:把nums按降序排序,从最大的优先选起,直到和超过总和的一半为止。

    代码如下:

    class Solution(object):
        def minSubsequence(self, nums):
            """
            :type nums: List[int]
            :rtype: List[int]
            """
            total = sum(nums)
            amount = 0
            res = []
            nums.sort(reverse=True)
            while len(nums) > 0:
                val = nums.pop(0)
                res.append(val)
                total -= val
                amount += val
                if amount > total:break
            return res
  • 相关阅读:
    异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute
    SpringMVC 如何定义类型转换器
    Springmvc 进行数据类型转换
    mvc:view-controller 标签
    将POST请求转换为DELETE、PUT等请求的方法
    关于HiddenHttpMethodFilter
    关于抽象方法的调用的
    一对一关联关系基于主键映射的异常 IdentifierGenerationException
    (二十四)js内存回收方法
    (二十三)函数柯里化
  • 原文地址:https://www.cnblogs.com/seyjs/p/12771504.html
Copyright © 2011-2022 走看看