1403 非遞增順序的最小子序列

2021-10-23 04:06:09 字數 984 閱讀 7347

給你乙個陣列 nums,請你從中抽取乙個子串行,滿足該子串行的元素之和 嚴格 大於未包含在該子串行中的各元素之和。

如果存在多個解決方案,只需返回 長度最小 的子串行。如果仍然有多個解決方案,則返回 元素之和最大 的子串行。

與子陣列不同的地方在於,「陣列的子串行」不強調元素在原陣列中的連續性,也就是說,它可以通過從陣列中分離一些(也可能不分離)元素得到。

注意,題目資料保證滿足所有約束條件的解決方案是 唯一 的。同時,返回的答案應當按 非遞增順序 排列。

示例 1:

輸入:nums = [4,3,10,9,8]

輸出:[10,9] 

解釋:子串行 [10,9] 和 [10,8] 是最小的、滿足元素之和大於其他各元素之和的子串行。但是 [10,9] 的元素之和最大

1.主要是理解題意

class solution:

def minsubsequence(self, nums: list[int]) -> list[int]:

if not nums:return

nums.sort(reverse=true)

for i in range(len(nums)):

if sum(nums[:i+1])>sum(nums[i+1:]):

return nums[:i+1]

class solution:

def minsubsequence(self, nums: list[int]) -> list[int]:

if not nums:return

s=sum(nums)

nums.sort(reverse=true)

cur=0

res=

for one in nums:

cur+=one

if cur>s-cur:

break

return res

1403 非遞增順序的最小子序列

給你乙個陣列nums,請你從中抽取乙個子串行,滿足該子串行的元素之和嚴格大於未包含在該子串行中的各元素之和。如果存在多個解決方案,只需返回長度最小的子串行。如果仍然有多個解決方案,則返回元素之和最大的子串行。與子陣列不同的地方在於,陣列的子串行 不強調元素在原陣列中的連續性,也就是說,它可以通過從陣...

1403 非遞增順序的最小子序列

題目描述 給你乙個陣列 nums,請你從中抽取乙個子串行,滿足該子串行的元素之和 嚴格 大於未包含在該子串行中的各元素之和。如果存在多個解決方案,只需返回 長度最小 的子串行。如果仍然有多個解決方案,則返回 元素之和最大 的子串行。與子陣列不同的地方在於,陣列的子串行 不強調元素在原陣列中的連續性,...

1403 非遞增順序的最小子序列(分析)

1.問題描述 給你乙個陣列 nums,請你從中抽取乙個子串行,滿足該子串行的元素之和嚴格大於未包含在該子串行中的各元素之和。如果存在多個解決方案,只需返回 長度最小 的子串行。如果仍然有多個解決方案,則返回 元素之和最大 的子串行。與子陣列不同的地方在於,陣列的子串行 不強調元素在原陣列中的連續性,...