Skip to content

Latest commit

 

History

History
36 lines (30 loc) · 970 Bytes

2600.k-件物品的最大和.md

File metadata and controls

36 lines (30 loc) · 970 Bytes

2600.k-件物品的最大和

/*
 * @lc app=leetcode.cn id=2600 lang=typescript
 *
 * [2600] K 件物品的最大和
 */

// @lc code=start
function kItemsWithMaximumSum(numOnes: number, numZeros: number, numNegOnes: number, k: number): number {}
// @lc code=end

解法 1: 数学

function kItemsWithMaximumSum(numOnes: number, numZeros: number, numNegOnes: number, k: number): number {
  if (numOnes + numZeros >= k) return Math.min(numOnes, k)
  return numOnes - (k - (numOnes + numZeros))
}

Case

test.each([
  { input: { numOnes: 3, numZeros: 2, numNegOnes: 0, k: 2 }, output: 2 },
  { input: { numOnes: 3, numZeros: 2, numNegOnes: 0, k: 4 }, output: 3 },
])(
  'input: numOnes = $input.numOnes, numZeros = $input.numZeros, numNegOnes = $input.numNegOnes, k = $input.k',
  ({ input: { numOnes, numZeros, numNegOnes, k }, output }) => {
    expect(kItemsWithMaximumSum(numOnes, numZeros, numNegOnes, k)).toEqual(output)
  },
)