泉州网站建设多少钱,保定网站制作软件,做网站时如何给文字做超链接,网站访问量大怎么办题目#xff1a;
给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。
在一步操作中#xff0c;你可以执行下述指令#xff1a;
在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i 。 将 nums[i] 替换为范围 [nums[i] - k, nums[i] k] 内的任一整…题目
给你一个下标从 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 10^5 0 nums[i], k 10^5
java代码
class Solution {public int maximumBeauty(int[] nums, int k) {int n nums.length;Arrays.sort(nums);int res 0;for (int i 0; i n; i) {int r lower_bound(nums, nums[i] 2 * k 1) - 1;res Math.max(res, r - i 1);}return res;}public int lower_bound(int[] nums, int target) {int l 0, r nums.length - 1;while (l r) {int m (l r) 1;if (nums[m] target)l m 1;else r m - 1;}return r 1;}
}