【每日一题Day256】LC2600K 件物品的最大和

简介: 【每日一题Day256】LC2600K 件物品的最大和

K 件物品的最大和【LC2600】

袋子中装有一些物品,每个物品上都标记着数字 10-1

给你四个非负整数 numOnesnumZerosnumNegOnesk

袋子最初包含:

  • numOnes 件标记为 1 的物品。
  • numZeroes 件标记为 0 的物品。
  • numNegOnes 件标记为 -1 的物品。

现计划从这些物品中恰好选出 k 件物品。返回所有可行方案中,物品上所标记数字之和的最大值。

  • 思路:贪心
    每次优先取数字较大的数字,取完了再取次大的,保证最终数字之和最大
  • 实现
class Solution {
    public int kItemsWithMaximumSum(int numOnes, int numZeros, int numNegOnes, int k) {
        if (k <= numOnes){
            return k;
        }else if ( k <= numOnes + numZeros){
            return numOnes;
        }else{
            return numOnes - (k - numOnes - numZeros);
        }
    }
}

image.png

目录
相关文章
|
6月前
|
Java
hdu-2112-HDU Today(dijkstra + map)
hdu-2112-HDU Today(dijkstra + map)
23 0
|
6月前
|
Java
hdu-2546-饭卡
hdu-2546-饭卡
29 0
hdu 1196 Lowest Bit(水题)
hdu 1196 Lowest Bit(水题)
41 0
华为机试HJ75:公共子串计算
华为机试HJ75:公共子串计算
|
算法 Java
HDU 2084 数塔
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
174 0
HDOJ(HDU) 2520 我是菜鸟,我怕谁(等差数列)
HDOJ(HDU) 2520 我是菜鸟,我怕谁(等差数列)
109 0
|
Java
HDOJ(HDU) 2502 月之数(进制)
HDOJ(HDU) 2502 月之数(进制)
109 0
HDOJ(HDU) 2107 Founding of HDU(找最大值)
HDOJ(HDU) 2107 Founding of HDU(找最大值)
111 0