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

LeetCode-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

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

将每个数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)


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


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



在这里插入图片描述


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

相关推荐

  1. LeetCode: 2779. 美丽

    2024-06-16 16:00:03       8 阅读
  2. 差分,LeetCode 2779. 美丽

    2024-06-16 16:00:03       10 阅读
  3. Leetcode】239. 滑动窗口

    2024-06-16 16:00:03       38 阅读
  4. LeetCode】239. 滑动窗口

    2024-06-16 16:00:03       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 16:00:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 16:00:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 16:00:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 16:00:03       18 阅读

热门阅读

  1. MySQL 考证作用

    2024-06-16 16:00:03       10 阅读
  2. grub引导LinuxMint

    2024-06-16 16:00:03       9 阅读
  3. MongoDB 自动增长

    2024-06-16 16:00:03       7 阅读
  4. 2.MongoDB 用户管理

    2024-06-16 16:00:03       6 阅读
  5. 手写微前端microApp-数据通信

    2024-06-16 16:00:03       7 阅读
  6. 深入理解Python中的多线程与多进程编程

    2024-06-16 16:00:03       9 阅读
  7. 什么是局域网?

    2024-06-16 16:00:03       9 阅读
  8. 手把手教你如何利用PEFT技术,微调一个AI大模型

    2024-06-16 16:00:03       10 阅读
  9. C++基础语法:指针“进阶“---结点,双重指针

    2024-06-16 16:00:03       10 阅读
  10. 一文读懂什么是双端队列(Double-Ended Queue)?

    2024-06-16 16:00:03       11 阅读
  11. 【计算机信息安全】期末复习

    2024-06-16 16:00:03       9 阅读
  12. 安全测试框架 二

    2024-06-16 16:00:03       9 阅读