做php网站的书,个人简历模板电子版,全网获客营销系统,做网站怎么赚钱滑县电LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】 题目描述#xff1a;解题思路一#xff1a;滑动窗口与排序解题思路二#xff1a;0解题思路三#xff1a;0 题目描述#xff1a;
给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。
在一步操… 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-kxk]然后排序判断区间是否有交集也就是说要满足 也就是
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) 创作不易观众老爷们请留步… 动起可爱的小手点个赞再走呗 (๑◕ܫ๑) 欢迎大家关注笔者你的关注是我持续更博的最大动力 原创文章转载告知盗版必究 ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠