当前位置: 首页 > news >正文

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】

  • 题目描述:
  • 解题思路一:滑动窗口与排序
  • 解题思路二:0
  • 解题思路三:0

题目描述:

给你一个下标从 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

解题思路一:滑动窗口与排序

将每个数x变为一个区间[x-k,x+k],然后排序,判断区间是否有交集:也就是说,要满足
在这里插入图片描述
也就是:在这里插入图片描述

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

时间复杂度:O(nlogn)
空间复杂度:O(1)

解题思路二:0


时间复杂度:O(n)
空间复杂度:O(n)

解题思路三:0


时间复杂度:O(n)
空间复杂度:O(n)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

http://www.lryc.cn/news/376585.html

相关文章:

  • RIP与OSPF发布默认路由(华为)
  • Android 一个改善的okHttp封装库
  • 瓦罗兰特低价区怎么下载 瓦罗兰特低价区下载教程+免费加速器推荐
  • lspci总结
  • Android开启HTTP服务
  • NLP - word2vec详解
  • AI办公自动化:用通义千问批量翻译长篇英语TXT文档
  • 一键解压,无限可能——BetterZip,您的Mac必备神器!
  • 【数学】什么是最大似然估计?如何求解最大似然估计
  • 跟张良均老师学大数据人工智能|企业项目试岗实训开营
  • Pentest Muse:一款专为网络安全人员设计的AI助手
  • 10 SpringBoot 静态资源访问
  • Unity 之通过自定义协议从浏览器启动本地应用程序
  • Python抓取天气信息
  • 【超越拟合:深度学习中的过拟合与欠拟合应对策略】
  • 【Orange Pi 5与Linux内核编程】-理解Linux内核中的container_of宏
  • 003.Linux SSH协议工具
  • web前端组织分析:深入剖析其结构、功能与未来趋势
  • GitCode热门开源项目推荐:Spider网络爬虫框架
  • 实现一个二叉树的前序遍历、中序遍历和后序遍历方法。
  • 串扰(二)
  • 零基础入门学用Arduino 第四部分(三)
  • Mp3文件结构全解析(一)
  • ES 8.14 Java 代码调用,增加knnSearch 和 混合检索 mixSearch
  • 被腰斩的颍川郡守赵广汉
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 目录管理器(200分) - 三语言AC题解(Python/Java/Cpp)
  • 关于自学\跳槽\转行做网络安全行业的一些建议
  • 计算机网络(1) OSI七层模型与TCP/IP四层模型
  • 认识QML
  • llama-factory微调chatglm3