LeetCode:2779. 数组的最大美丽值(滑动窗口 Java)

目录

2779. 数组的最大美丽值

题目描述:

实现代码与解析:

滑动窗口

原理思路:


2779. 数组的最大美丽值

题目描述:

        给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。

在一步操作中,你可以执行下述指令:

  • 在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i 。
  • 将 nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。

数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。

对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值。

注意:你  能对每个下标执行 一次 此操作。

数组的 子序列 定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。

示例 1:

输入:nums = [4,6,1,2], k = 2
输出:3
解释:在这个示例中,我们执行下述操作:
- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2] 。
- 选择下标 3 ,将其替换为 4(从范围 [0,4] 中选出),此时 nums = [4,4,1,4] 。
执行上述操作后,数组的美丽值是 3(子序列由下标 0 、1 、3 对应的元素组成)。
可以证明 3 是我们可以得到的由相等元素组成的最长子序列长度。

示例 2:

输入:nums = [1,1,1,1], k = 10
输出:4
解释:在这个示例中,我们无需执行任何操作。
数组 nums 的美丽值是 4(整个数组)。

提示:

  • 1 <= nums.length <= 105
  • 0 <= nums[i], k <= 105

实现代码与解析:

滑动窗口

class Solution {public int maximumBeauty(int[] nums, int k) {int n  = nums.length;int res = 0;Arrays.sort(nums);for (int r = 0, l = 0; r < n; r++) {while (nums[r] - 2 * k > nums[l]) {l++;}res = Math.max(res, r - l + 1);}return res;}
}

原理思路:

        根据题目,很容易想到,要把数最密集的区间中的改为同一个值,所以第一步先排序。

然后使用滑动窗口,让窗口内的值保持在2k之内,记录最大的个数,即为答案。

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

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

相关文章

使用 Python 进行测试(2)前进到pytest

总结 pytest一个宝藏框架&#xff0c;减少了我们对测试蔬菜的抗拒&#xff0c;并让测试更有效率。 将上一节的使用unittest编写的测试使用pytest重写&#xff1a; import pytest from the_code_to_test import addpytest.fixture() def setup_and_tear_down():print(This is …

IDEA启动正常debug启动报错

项目场景&#xff1a; 很奇怪的一个问题,项目运行正常,debug启动直接报错,运行不起来 Exception in thread "main" java.lang.ClassNotFoundException: kotlinx.coroutines.debug.AgentPremainat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at ja…

好像也没那么失望!SD3玩起来,Stable Diffusion 3工作流商业及广告设计(附安装包)

今天基于SD3 base 工作流来尝试进行下广告设计&#xff0c;这要是一配上设计文案&#xff0c;视觉感就出来了。下面来看看一些效果展示~ SD3 Medium模型及ComfyUI工作流下载地址&#xff1a;文末领取&#xff01; 1.清凉夏日——西瓜音乐会 提示词&#xff1a; a guitar wi…

协程库——测试、优化

Ubuntu: 2核4G 1 单线程 1.1 原生epoll ab -n 200000 -c 1000 http://192.168.253.138:12345/ Server Software: Server Hostname: 192.168.253.138 Server Port: 12345 Document Path: / Document Length: 496 bytes Concurrenc…

停止游戏中的循环扣血显示

停止游戏中循环扣血并显示的具体实现方式会依赖于你的代码结构和游戏的逻辑。通常情况下&#xff0c;你可以通过以下方式来实现停止循环扣血和显示&#xff1a; 1、问题背景 在使用 Python 代码为游戏开发一个生命值条时&#xff0c;遇到了一个问题。代码使用了循环来减少生命…

Studio One软件最新版下载及详细安装教程

Studio One 6是一款功能丰富、专业级的音乐制作软件&#xff0c;它具备灵活的工作流程和高效的团队协作能力&#xff0c;能帮助用户实现高质量的音乐创作和制作。 智能模板更快的启动&#xff0c;全新的智能模板为你手头的任务提供了必要的工具集&#xff0c;包括基本录制、混音…

【前端】HTML5基础

目录 0 参考1 网页1.1 什么是网页1.2 什么是HTML1.3 网页的形成 2 浏览器2.1 常用的浏览器2.2 浏览器内核 3 Web标准3.1 为什么需要Web标准3.2 Web标准的构成 4 HTML 标签4.1 HTML语法规范4.1.1 基本语法概述4.1.2 标签关系4.1.2.1 包含关系4.1.2.2 并列关系 4.2 HTML基本结构标…

03.VisionMaster 机器视觉 位置修正 工具

VisionMaster 机器视觉 位置修正 工具 官方解释&#xff1a;位置修正是一个辅助定位、修正目标运动偏移、辅助精准定位的工具。可以根据模板匹配结果中的匹配点和匹配框角度建立位置偏移的基准&#xff0c;然后再根据特征匹配结果中的运行点和基准点的相对位置偏移实现ROI检测…

远程医疗服务包含哪些服务内容?

在当今数字化时代&#xff0c;远程医疗服务正在迅速崛起&#xff0c;成为医疗保健领域的一项重要创新。通过远程医疗服务&#xff0c;患者可以足不出户就能获得医疗服务。那么远程医疗究竟能提供哪些服务呢?下面我们就来看看。 1. 远程咨询 远程咨询是远程医疗服务的基础&…

Leetcode 2786. 访问数组中的位置使分数最大(DP 优化)

Leetcode 2786. 访问数组中的位置使分数最大 DP 以每个位置为结尾的序列的分数取决于前方的分数&#xff0c;根据奇偶性计算&#xff0c;取最大值 超时 class Solution {public long maxScore(int[] nums, int x) {int n nums.length;long dp[] new long[n];Arrays.fill(dp…

SQL题——连续问题

目录 1.连续问题的统一思路2.相关题目1285 找到连续区间的开始和结束数字2173 最多连胜的次数1454 活跃用户1225 报告系统状态的连续日期2292 连续两年有3个及以上订单的产品2752 在连续天数上进行了最多交易次数的顾客2474 购买量严格增加的客户3140 连续空余座位II 1.连续问题…

内网安全【2】-域防火墙

1.判断什么时候用代理 2.判断什么时候用隧道 3.判断出网和不出网协议 4.如何使用代理建立节点并连接 5.如何使用隧道技术封装协议上线 6.判断哪些代理或隧道情况选择放弃 代理技术&#xff1a;解决网络通讯不通的问题(利用跳板机建立节点后续操作)&#xff08;网络设置导…

HTML5 Web SQL数据库:浏览器中的轻量级数据库解决方案

在HTML5时代&#xff0c;Web开发迎来了一系列创新特性&#xff0c;其中之一便是Web SQL数据库。尽管Web SQL标准已被W3C废弃&#xff0c;转而推荐IndexedDB作为替代&#xff0c;但了解Web SQL对于学习Web存储技术的演进历程仍有其价值。本文将详细介绍Web SQL数据库的基本概念、…

WINDOWS系统jdk和maven明明安装了cmd里却无法使用相关命令

今天当了回s b 新电脑jdk和maven装是装了&#xff0c;系统变量也配置了&#xff0c;但没配置完&#xff0c;javahome和mavenhome没配置&#xff0c;结果cmdjdk和maven版本都查不到&#xff0c;我真s b啊 配置 JAVA_HOME 环境变量&#xff1a; 右键点击“此电脑”或者“我的电…

C# WinForm —— 35 StatusStrip 介绍

1. 简介 状态栏 StatusStrip&#xff0c;默认在软件的最下方&#xff0c;用于显示系统时间、版本、进度条、账号、角色信息、操作位置信息等 可以在状态栏中添加的控件类型有&#xff1a;StatusLabel、ProgressBar、DropDownButton、SplitButton 2. 属性 属性解释(Name)控…

leetcode 字符串

1143. 最长公共子序列 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int longestCommonSubsequence(string text1, string text2) {int mtext1.length();int ntext2.length();vector<vector<int>>f(m1,vector<int>(n1,0));for(int …

远程控制软件

向日葵远程控制软件 向日葵远程控制软件_远程控制电脑手机_远程桌面连接_远程办公|游戏|运维-贝锐向日葵官网 TODESK ToDesk远程桌面软件-免费安全流畅的远程连接电脑手机

注册中心理论学习

注册中心介绍 注册中心&#xff08;也称为服务注册中心或服务发现服务&#xff09;是微服务架构中的一个关键组件&#xff0c;它负责服务的注册与发现。在微服务体系中&#xff0c;服务实例的数量和位置是动态变化的&#xff0c;注册中心提供了一个集中的地方来存储这些信息&a…

速盾:服务器遭受ddos攻击如何防御

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的网络攻击方式&#xff0c;旨在通过同时向目标服务器发送大量请求&#xff0c;以使其过载并无法正常工作。为了有效防御DDoS攻击&#xff0c;服务器管理员可以采取以下措施&#xff1a; 流量监测和分析&#xff1a;监…

前端问题整理

Vue vue mvvm&#xff08;Model-View-ViewModel&#xff09;架构模式原理 Model 是数据层&#xff0c;即 vue 实例中的数据View 是视图层&#xff0c; 即 domViewModel&#xff0c;即连接Model和Vue的中间层&#xff0c;Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…