​LeetCode解法汇总2600. K 件物品的最大和

news/2024/7/5 1:38:59

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

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

给你四个非负整数 numOnes 、numZeros 、numNegOnes 和 k 。

袋子最初包含:

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

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

示例 1:

输入:numOnes = 3, numZeros = 2, numNegOnes = 0, k = 2
输出:2
解释:袋子中的物品分别标记为 {1, 1, 1, 0, 0} 。取 2 件标记为 1 的物品,得到的数字之和为 2 。
可以证明 2 是所有可行方案中的最大值。

示例 2:

输入:numOnes = 3, numZeros = 2, numNegOnes = 0, k = 4
输出:3
解释:袋子中的物品分别标记为 {1, 1, 1, 0, 0} 。取 3 件标记为 1 的物品,1 件标记为 0 的物品,得到的数字之和为 3 。
可以证明 3 是所有可行方案中的最大值。

提示:

  • 0 <= numOnes, numZeros, numNegOnes <= 50
  • 0 <= k <= numOnes + numZeros + numNegOnes

解题思路:

* 2600. K 件物品的最大和

* 解题思路:

* 顺序执行的逻辑,首先,numOnes>=k时,则直接返回k即可。否则, sum += numOnes;以及 k -= numOnes;。

* 后面判断numZeros >= k和numNegOnes >= k的场景原理也类似。

* 最终返回sum即可。

 

代码:

class Solution2600
{
public:
    int kItemsWithMaximumSum(int numOnes, int numZeros, int numNegOnes, int k)
    {
        int sum = 0;
        if (numOnes >= k)
        {
            sum += k;
            return sum;
        }
        sum += numOnes;
        k -= numOnes;
        if (numZeros >= k)
        {
            return sum;
        }
        k -= numZeros;
        if (numNegOnes >= k)
        {
            sum -= k;
            k -= numNegOnes;
            return sum;
        }
        sum -= numNegOnes;
        return sum;
    }
};


http://lihuaxi.xjx100.cn/news/1313049.html

相关文章

情商学习(持续更新中)

思维模型 要掌握常见的100多个思维模型&#xff0c;才能解决生活当中80%-90%的问题 帮助提高我们做决策的正确率和质量&#xff0c;提高我们的创新力 外部刺激 ——> 信念反应 ——> 行动结果 信念反应&#xff1a;由原生家庭&#xff0c;经历决定&#xff0c;江山易…

【C语言初阶(11)】递归练习题

文章目录 1. 打印一个整型的每一位2. 求字符串长度3. 求 n 的阶乘4. 求第 n 个斐波那契数4.1 递归算法4.2 非递归算法 1. 打印一个整型的每一位 题目内容 接受一个整型值&#xff08;无符号&#xff09;&#xff0c;按照顺序打印它的每一位。 例如&#xff1a;输入 1234&#…

springboot2.4实现事件监听

springboot2.4实现事件监听 物料准备&#xff1a; 1.一个事件类 2.一个监听方法 3.发布事件 自定义一个事件类MyEvent.java package com.example.demo.evt;import lombok.Data;/*** 1.创建事件类** 创建1个事件类&#xff0c;用于封装你想传递的数据。* 这个事件类可以是…

【java】hutool发送http请求,配置ssl忽略

1.发送请求 import cn.hutool.http.HttpRequest; /*** cf*/ public class TqOdpServiceClient {private static String url"url";;public static String execute(String http,String params,String auth) {String result2 HttpRequest.post(httpurl).header("A…

深度学习-目标检测之边界框bbox坐标转换公式汇总

深度学习 文章目录 深度学习 尝试着写了一个可以转换任何维度的任意格式的bbox函数。 本程序目的是&#xff1a; 可以转换以下三种格式的输入数据 list,numpy,tensor&#xff0c;维度可以从0维到2维&#xff0c; 也就是shape为&#xff1a;(4,) (3, 4) torch.Size([4]) torch.…

【rtklibexployer】RTKLIB Static-start feature 静态启动模式

原文&#xff1a;RTKLIB: Static-start feature 静态启动模式是我不久前添加到 demo4 代码中的&#xff0c;但一直没来得及解释&#xff0c;所以我现在要做。 正如我以前提到的&#xff0c;我总是喜欢在第一次打开接收器后让接收机静止不动&#xff0c;以便在允许它移动之前获…

svn和git的使用杂谈

笔者毕业的4年一直都是使用svn&#xff0c;直到前面几个月换了工作&#xff0c;新单位用的git&#xff0c;愣是用了1-2个月的时间才缓过来&#xff1b;下面是笔者关于这两款代码管理工具使用的一点经验。 svn svn:使用简单&#xff0c;入门容易&#xff0c;就只有本地代码和远…

jenkins部署springboot项目

jenkins部署springboot项目 1、创建一个项目 上传到gitee 1、创建项目 2、上传到git 2、jenkins创建一个pipeline项目 Pipeline简介 1&#xff09;概念 Pipeline&#xff0c;简单来说&#xff0c;一套运行在 Jenkins 上的工作流框架&#xff0c;将原来独立运行于单个或者…