【每日一题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

目录
打赏
0
2
2
0
5
分享
相关文章
|
11月前
【每日一题Day366】LC2103环和杆 | 状态压缩
【每日一题Day366】LC2103环和杆 | 状态压缩
72 0
|
11月前
【每日一题Day290】LC1281整数的各位积和之差 | 模拟
【每日一题Day290】LC1281整数的各位积和之差 | 模拟
58 0
【每日一题Day348】LC137只出现一次的数字Ⅱ | 状态转移
【每日一题Day348】LC137只出现一次的数字Ⅱ | 状态转移
61 0
|
11月前
|
【每日一题Day349】LC260只出现一次的数字 III | 位运算
【每日一题Day349】LC260只出现一次的数字 III | 位运算
62 0
|
11月前
|
【每日一题Day347】LC136只出现一次的数字 | 位运算
【每日一题Day347】LC136只出现一次的数字 | 位运算
59 0
|
11月前
|
【每日一题Day363】LC275H 指数Ⅱ | 二分答案
【每日一题Day363】LC275H 指数Ⅱ | 二分答案
75 0
|
11月前
【每日一题Day356】LC2678老人的数目 | 字符串
【每日一题Day356】LC2678老人的数目 | 字符串
67 0
|
11月前
【每日一题Day248】LC2485找出中枢整数 | 数学
【每日一题Day248】LC2485找出中枢整数 | 数学
61 0
【代码随想录】LC 704. 二分查找
防止溢出可以将int mid = (left + right) / 2;改为 int mid = left + ((right - left) / 2);或int mid = left + ((right - left) >> 1);。 数组理论基础 数组下标都是从0开始的 数组在内存空间的地址是连续的 数组中的元素只能覆盖,不能删除。
54 0
|
11月前
【每日一题Day330】LC337打家劫舍Ⅲ | 动态规划
【每日一题Day330】LC337打家劫舍Ⅲ | 动态规划
51 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等