【力扣2656】K个元素的最大和

news2024/12/25 23:52:17

在这里插入图片描述

  • 👑专栏内容:力扣刷题
  • ⛪个人主页:子夜的星的主页
  • 💕座右铭:前路未远,步履不停

目录

  • 一、题目描述
  • 二、题目分析


一、题目描述

题目链接:K个元素的最大和

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分:

  • 从 nums 中选择一个元素 m 。
  • 将选中的元素 m 从数组中删除。
  • 将新元素 m + 1 添加到数组中。
  • 你的得分增加 m 。
  • 请你返回执行以上操作恰好 k 次后的最大得分。

在这里插入图片描述

二、题目分析

思路很简单,只需要先找到最大值,让后循环累加最大值以及后 k 次操作就行了。

class Solution {
    public int maximizeSum(int[] nums, int k) {
        int max = findMax(nums);
        int sum = calculateSum(max, k);
        return sum;
    }
    
    private int findMax(int[] nums) {
        int max = Integer.MIN_VALUE;
        for (int num : nums) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    }
    
    private int calculateSum(int max, int k) {
        int sum = 0;
        for (int i = 0; i < k; i++) {
            sum += max + i;
        }
        return sum;
    }
}

findMax方法用于找到数组nums中的最大值。它遍历数组中的每个元素,通过比较更新一个变量max,最终返回最大值。
calculateSum方法用于计算最大和。它接收最大值max和整数 k 作为参数,通过一个循环累加最大值及其后续的 k 个连续整数,最终返回累加和。

当然,你也可以向下面这样写:

class Solution {
    public int maximizeSum(int[] nums, int k) {
        int sum = 0;
        int max = Arrays.stream(nums).max().getAsInt();
        for(int i = 0;i<k;i++){
            sum = sum + max + i;
        }
        return sum;
    }
}

解释一下:int max = Arrays.stream(nums).max().getAsInt();
当调用 Arrays.stream(nums),它将整数数组 nums 转换为一个流(Stream)对象。这个流对象允许你在数组上执行各种操作。接下来,调用 .max() 方法会返回流中的最大元素。

这里,我们得到的是一个 OptionalInt 对象,它表示可能存在或不存在的最大值。OptionalInt 是一个容器类,可以包含一个整数值或者表示没有值的情况。如果流中有最大值,你可以使用 .getAsInt()方法从 OptionalInt对象中获取真正的最大值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【kkFileView】源码编译打包构建镜像部署

目录 官网使用源码构建镜像k8s启动yaml参考使用介绍 官网 官网: http://kkfileview.keking.cn/zh-cn/index.html在线文档: http://kkfileview.keking.cn/zh-cn/docs/home.html源码地址: https://gitee.com/kekingcn/file-online-preview发行版下载页面: https://gitee.com/kek…

数据分析技能点-正态分布和其他变量分布

在数据驱动的世界里,了解和解释数据分布是至关重要的。不同类型的数据分布,如正态分布、二项分布和泊松分布,具有不同的特性和应用场景。这些分布不仅在统计学和数据科学中有广泛应用,而且在日常生活和商业决策中也起着关键作用。 文章目录 正态分布正态分布和偏差其他常见…

使用adb命令通过数据线操控Android手机设备屏幕

目录 第一步&#xff1a;下载并安装Android SDK Platform-Tools 第二步&#xff1a;启动adb并测试连接 第三步&#xff1a;操控手机 第一步&#xff1a;下载并安装Android SDK Platform-Tools 进入Android开发者网站上找到ADB工具包&#xff08;包含在Android SDK Platform…

最新AI智能写作系统ChatGPT源码/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…

没有一技之长,该如何找工作?

很负责任的告诉你&#xff0c;跟你一样有这个困惑的人真的太多了&#xff01; 而且你也会发现&#xff0c;你身边的大多数人也都很迷茫。 家庭、学历一般&#xff0c;没啥特长爱好&#xff0c;更没有拿的出手的技能。 想要告诉你的是&#xff0c;你觉得你自己一无所长&#…

基于Matlab求解2023华为杯研究生数学建模竞赛E题——出血性脑卒中临床智能诊疗建模实现步骤(附上源码+数据)

文章目录&#xff0c;源码见文末下载 背景介绍准备工作&#xff1a;处理数据第一题&#xff1a;血肿扩张风险相关因素探索建模a&#xff09;问题b&#xff09;问题 第二题&#xff1a; 血肿周围水肿的发生及进展建模&#xff0c;并探索治疗干预和水肿进展的关联关系a&#xff0…

图像的读写与保存

图像是由众多的像素值构成的&#xff0c;我们如何去操作图像呢&#xff1f; 答案就是将图像转化为数组。 OpenCV提供了这样的方法。 我们使用cv2.imread()方法读取图片&#xff0c;返回数组格式。 对于cv2.imread(filename, flags)函数参数如下&#xff1a; 参数filename&a…

Adaptive AUTOSAR CM模块介绍(二)

在Adaptive AUTOSAR CM模块介绍(一)中介绍了 AP CM模块的功能和定位&#xff0c;这一篇主要是讲解AP CM模块的ara::com API的内容&#xff1a; 为什么AUTOSAR发明了另一种通信中间件API/技术&#xff1f;在当时中间件技术有很多啊&#xff1f;在当时特别有名的中间件有&#xf…

Kerberos常用操作

​​​​​登录Kerberos: kadmin.local 使用kadmin.local命令登录 [rootmanager ~]# kadmin.local Authenticating as principal root/adminBIGDATA with password. kadmin.local: ? # 查看命令列表i Available kadmin.local requests:add_principal, addprinc, ankAdd pri…

Pikachu靶场——SSRF 服务端请求伪造

文章目录 1 SSRF 服务端请求伪造1.1 SSRF(curl)1.1.1 漏洞防御 1.2 SSRF(file_get_content)1.2.1 漏洞防御1.2.3 SSRF 防御 1 SSRF 服务端请求伪造 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&a…

uni-sec-check内容安全unicloud公共模块,校验微信小程序文本内容安全识别和图片智能鉴黄,uniapp进阶

uni-sec-check内容安全是unicloud封装了微信小程序的免费接口&#xff0c;文本内容安全识别&#xff08;msgSecCheck&#xff09;和音视频内容安全识别&#xff08;mediaCheckAsync&#xff09;&#xff0c;如果我没选择使用uniappunicloud开发的话&#xff0c;可以轻松从插件市…

大数据分析就业班项目介绍

大数据分析就业班专业培养企业级刚需人才&#xff0c;拥有完善的独家的课程体系&#xff0c;采用项目式教学&#xff0c;专属导师全程伴学&#xff0c;最后帮助学生推荐就业。 大数据分析培训的适学人员包括&#xff1a; 1、大三大四应届学生 数学类、统计类、计算…

新增测试场景:方言

SpeechIO的所有历史文章可在语音之家网站的【声浪】-【SpeechIO专区】查看&#xff0c;评测结果数据可在语音之家&#xff08;PC端&#xff09;的【SOTA】页面查看。 官网地址&#xff1a;http://www.speechhome.com/eval 新增测试场景 另注&#xff1a;测试平台目前总计43个…

vue中同一个页面参数不同动态改变数据与标题

背景 要求做一个页面&#xff0c;可以在菜单配置参数后直接跳转显示不同的报表&#xff1b; 具体步骤 步骤1&#xff1a;接收参数 参数配置与路由拦截这里不详细说&#xff0c;可以参考vue配置参数跳转 说明&#xff1a;这里参考的是saber框架中的特殊情况&#xff0c;如果…

VS2022 编译protobuf , qt 使用

一、下载源码 protobuf: 同步 https://github.com/protocolbuffers/protobuf (gitee.com) 下载如v3.11.2 版本 二、下载CMake 三、编译 1、在1处选择源码目录下的cmake 目录&#xff1b;在2处选择一处空目录&#xff08;自己随便建&#xff09; 2、点击config&#xff0c;选择…

MySQL超入门(1)__迅速上手掌握MySQL

# 1.选择语句 # 注意事项&#xff1a;MySQL不区分大小写&#xff0c;SELECT * 代表选择全部 // 测试一 USE sql_store; -- 使用 sql_store库 SELECT * FROM customers -- 查询customers表 WHERE customer_id 1 OR customer_id 4 -- 条件判断为customer_id 1或customer_id …

vue 非父子通信 拓展 -- provide inject 跨层级共享数据

vue 非父子通信 拓展 – provide inject provide inject 作用&#xff1a; 跨层级共享数据 例子是啥样的&#xff1f; 创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门…

Linux(CentOS/Ubuntu)——安装nginx

如果确定你的系统是基于CentOS或RHEL&#xff0c;可以使用以下命令&#xff1a; ①、安装库文件 #安装gcc yum install gcc-c#安装PCRE pcre-devel yum install -y pcre pcre-devel#安装zlib yum install -y zlib zlib-devel#安装Open SSL yum install -y openssl openssl-de…

CTF_BUUCTF_Reverse解题_02reverse1

题目地址&#xff1a;BUUCTF在线评测 下载文件解压后打开exe&#xff1a; 输入任何东西之后都是闪退的 直接PE 64位C没加壳 再来IDA 64 找到地方F5直接看&#xff1a; strncmp比较 Str1和 Str2前v2的值&#xff0c;如果Str1Str2&#xff0c;返回0&#xff1b;大于返回正数&a…

ITSM有哪些好用的软件?

ITSM知名软件有很多&#xff0c;但好用且性价比高的仅有一些&#xff0c;比如&#xff1a; 1.Atlassian Jira 最初&#xff0c;开发人员创建Jira来跟踪软件创建&#xff0c;但随后Atlassian的管理层注意到一些团队正在调整Jira来处理服务台请求 2.Spiceworks Spiceworks是一款免…