Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

非递增顺序的最小子序列 #149

Open
yankewei opened this issue Aug 4, 2022 · 1 comment
Open

非递增顺序的最小子序列 #149

yankewei opened this issue Aug 4, 2022 · 1 comment
Labels
排序 题目包含排序解法 数组 题目类型为数组 简单 题目难度为简单 贪心算法 题目包含贪心解法

Comments

@yankewei
Copy link
Owner

yankewei commented Aug 4, 2022

给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。

如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。

与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。

注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。

示例 1:

输入:nums = [4,3,10,9,8]
输出:[10,9] 
解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。但是 [10,9] 的元素之和最大。 

示例 2:

输入:nums = [4,4,7,6,7]
输出:[7,7,6] 
解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。因此,[7,6,7] 是满足题意的最小子序列。注意,元素按非递增顺序返回。  

示例 3:

输入:nums = [6]
输出:[6]

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-subsequence-in-non-increasing-order
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

@yankewei yankewei added 简单 题目难度为简单 数组 题目类型为数组 排序 题目包含排序解法 贪心算法 题目包含贪心解法 labels Aug 4, 2022
@yankewei
Copy link
Owner Author

yankewei commented Aug 4, 2022

既然要和最大而且子数组可以是任意的顺序,可以想到排序,以这样我们就可以从数组末尾/首部选一个或者多个元素,元素的和肯定是最大的,同时注意返回的答案要非递增排序。

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer[]
     */
    function minSubsequence($nums) {
        rsort($nums);
        $sum = array_sum($nums);

        for ($i = 0; $i < count($nums); $i++) {
            $sub_num = array_slice($nums, 0, $i+1);
            $sub_sum = array_sum($sub_num);

            if ($sum - $sub_sum < $sub_sum) {
                break;
            }
        }

        return $sub_num;
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
排序 题目包含排序解法 数组 题目类型为数组 简单 题目难度为简单 贪心算法 题目包含贪心解法
Projects
None yet
Development

No branches or pull requests

1 participant