<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [LeetCode] 3397. Maximum Number of Distinct Elements After Operations

      You are given an integer array nums and an integer k.

      You are allowed to perform the following operation on each element of the array at most once:

      Add an integer in the range [-k, k] to the element.
      Return the maximum possible number of distinct elements in nums after performing the operations.

      Example 1:
      Input: nums = [1,2,2,3,3,4], k = 2
      Output: 6

      Explanation:
      nums changes to [-1, 0, 1, 2, 3, 4] after performing operations on the first four elements.

      Example 2:
      Input: nums = [4,4,4,4], k = 1
      Output: 3

      Explanation:
      By adding -1 to nums[0] and 1 to nums[1], nums changes to [3, 5, 4, 4].

      Constraints:
      1 <= nums.length <= 105
      1 <= nums[i] <= 109
      0 <= k <= 109

      執(zhí)行操作后不同元素的最大數(shù)量。

      給你一個整數(shù)數(shù)組 nums 和一個整數(shù) k。

      你可以對數(shù)組中的每個元素 最多 執(zhí)行 一次 以下操作:

      將一個在范圍 [-k, k] 內(nèi)的整數(shù)加到該元素上。
      返回執(zhí)行這些操作后,nums 中可能擁有的不同元素的 最大 數(shù)量。

      思路

      思路是貪心。題目給的是一個 nums 數(shù)組和一個整數(shù) k。首先這道題必須要排序,或者需要有一個類似 treemap 的數(shù)據(jù)結(jié)構(gòu)使得最后的結(jié)果有序,否則是不太好判斷某個數(shù)字是否存在的。這里我選擇排序。

      對 input 數(shù)組排序過后,我們從第一個數(shù)字開始判斷。這里的思路是需要讓每個數(shù)字盡量小,這樣才能留出更多余地給后面的數(shù)字讓他們盡量不重復(fù)。對于第一個數(shù)字 nums[0],我們可以把它變成 nums[0] - k,這樣是最小的。然后我們記錄下當(dāng)前的 pre = nums[0] - k。為什么變量叫 pre 呢?因為我們需要記錄前一個數(shù)字的值,方便和后面的數(shù)字比較。那么對于下一個數(shù)字 nums[1],他需要滿足

      • 介于 [nums[1] - k, nums[1] + k] 之間
      • 大于 pre
      • 所以其實是介于 [max(pre + 1, nums[1] - k), nums[1] + k] 之間

      如果數(shù)字滿足這個區(qū)間,則說明找到了一個新的不同數(shù)字,我們就把 pre 更新為 max(pre + 1, nums[1] - k),并且結(jié)果 count++。如果不滿足這個區(qū)間,則說明無法找到一個新的不同數(shù)字,我們就跳過這個數(shù)字,繼續(xù)下一個數(shù)字的判斷。

      復(fù)雜度

      時間O(nlogn),排序的時間復(fù)雜度
      空間O(1)

      代碼

      Java實現(xiàn)

      class Solution {
          public int maxDistinctElements(int[] nums, int k) {
              Arrays.sort(nums);
              int count = 0;
              int pre = Integer.MIN_VALUE;
              for (int num : nums) {
                  int left = num - k;
                  int right = num + k;
                  int cur = Math.max(pre + 1, left);
                  if (cur <= right) {
                      count++;
                      pre = cur;
                  }
              }
              return count;
          }
      }
      
      posted @ 2025-10-19 07:58  CNoodle  閱讀(12)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品国产av成人网| 亚洲国产精品一区二区三| 午夜通通国产精品福利| 无码一区二区三区中文字幕| 久久精品国产亚洲夜色av网站| 国产午夜在线观看视频播放 | 最新国产AV最新国产在钱| 男女啪啪高清无遮挡免费| 国产精品无码不卡在线播放| 最新午夜男女福利片视频| 国产99在线 | 欧美| 国产免费高清69式视频在线观看| 日本高清在线观看WWW色| 好吊妞人成视频在线观看27du| 在线免费播放av观看| 亚洲国产精品久久久久婷婷图片| 国产精品福利自产拍久久| 亚洲风情亚aⅴ在线发布| 成人免费无码av| 国产精品一区二区久久岳| 亚洲av产在线精品亚洲第一站| 日韩毛片在线视频x| 国产熟妇另类久久久久久| 五月天久久综合国产一区二区| 视频一区视频二区制服丝袜| 四虎成人在线观看免费| 狠狠噜天天噜日日噜| 在线高清免费不卡全码| 日韩精品国内国产一区二| 18禁午夜宅男成年网站| 临西县| 精品一区二区三区少妇蜜臀| 久草热8精品视频在线观看| 一 级做人爱全视频在线看| 四虎网址| 久久热在线视频精品视频| 久久精品人成免费| 国产色悠悠综合在线观看| 亚洲成人av在线综合| 国产成人精品电影在线观看| 午夜亚洲国产理论片亚洲2020 |