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

88 阅读1分钟

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

解题思路

根据题意. 我们要求的结果的总和应大于 sum / 2 故 我们可以先求总和, 将数组排序. 然后逐个累加计算子序列总和是否满足题意. 若满足, 则返回答案

代码

var minSubsequence = function (nums) {
  const sum = nums.reduce((p, c) => p + c, 0);
  const half = Math.floor(sum / 2);

  const arr = nums.sort((a, b) => b - a);
  let ans = 0;
  let i = 0;
  for (; ans <= half; i++) ans += arr[i];
  return arr.slice(0, i);
};