<ruby id="9ue20"></ruby>

  1. 
    

      国产午夜福利免费入口,国产日韩综合av在线,精品久久人人妻人人做精品,蜜臀av一区二区三区精品,亚洲欧美中文日韩在线v日本,人妻av中文字幕无码专区 ,亚洲精品国产av一区二区,久久精品国产清自在天天线
      網易首頁 > 網易號 > 正文 申請入駐

      2026-05-09:不同元素和至少為 K 的最短子數組長度。用go語言,給定一個整數數組 nums 和一個整數 k。你需要在數組中找一個連續的非空子

      0
      分享至

      2026-05-09:不同元素和至少為 K 的最短子數組長度。用go語言,給定一個整數數組 nums 和一個整數 k。你需要在數組中找一個連續的非空子數組,使得這個子數組里不同元素的種類數對應的取值之和(也就是:每個數只算一次,不重復計)不小于 k。求滿足條件的最短子數組長度;如果不存在這樣的子數組,就返回 -1。

      1 <= nums.length <= 100000。

      1 <= nums[i] <= 100000。

      1 <= k <= 1000000000。

      輸入: nums = [2,2,3,1], k = 4。

      輸出: 2。

      解釋:

      子數組 [2, 3] 具有不同的元素 {2, 3},它們的和為 2 + 3 = 5,這至少為 k = 4。因此,答案是 2。

      題目來自力扣3795。

      算法執行過程詳細描述 核心思路

      我們使用滑動窗口(雙指針)算法:用左、右兩個指針界定一個連續的窗口,右指針不斷向右擴展窗口,把元素加入窗口;當窗口內不同元素的和 ≥ k時,嘗試收縮左指針縮小窗口,同時記錄滿足條件的最小窗口長度。整個過程只遍歷數組一次,保證高效性。

      關鍵變量說明

      1. 1.cnt:哈希表,記錄窗口內每個數字出現的次數

      2. 2.sum:記錄窗口內不同元素的和(每個數字只加一次,重復出現不加)

      3. 3.left:滑動窗口的左邊界指針

      4. 4.ans:記錄滿足條件的最短子數組長度,初始為無窮大

      5. 5.i(右指針):滑動窗口的右邊界指針

      逐步驟執行過程

      數組:[2, 2, 3, 1],目標和 k=4
      初始狀態:cnt=空sum=0left=0ans=無窮大

      第一步:右指針 i=0,元素 x=2

      1. 1. 把 2 加入窗口:cnt[2] = 1

      2. 2. 因為是第一次出現 2,sum += 2→ sum=2

      3. 3. 判斷 sum(2) ≥ 4?不滿足,不收縮窗口

      4. 4. 當前窗口:[0,0],長度1,不滿足條件

      第二步:右指針 i=1,元素 x=2
      1. 1. 把 2 加入窗口:cnt[2] = 2

      2. 2. 2 已經出現過,sum 不變化 → sum=2

      3. 3. 判斷 sum(2) ≥ 4?不滿足,不收縮窗口

      4. 4. 當前窗口:[0,1],長度2,不滿足條件

      第三步:右指針 i=2,元素 x=3
      1. 1. 把 3 加入窗口:cnt[3] = 1

      2. 2. 第一次出現 3,sum += 3→ sum=5

      3. 3. 判斷 sum(5) ≥ 4?滿足條件,開始收縮左指針:

      • ? 更新最短長度:ans = min(無窮大, 2-0+1=3) → ans=3

      • ? 移出左邊界元素 2:cnt[2] = 1

      • ? 2 還在窗口中,sum 不變 → sum=5

      • ? 左指針右移:left=1

      4. 再次判斷 sum(5) ≥ 4?仍滿足,繼續收縮:

      • ? 更新最短長度:ans = min(3, 2-1+1=2) → ans=2

      • ? 移出左邊界元素 2:cnt[2] = 0,2 徹底離開窗口

      • ? sum 減去 2 → sum=3

      • ? 左指針右移:left=2

      5. 此時 sum=3 < 4,停止收縮

      6. 當前窗口:[2,2],長度1,不滿足條件

      第四步:右指針 i=3,元素 x=1

      1. 1. 把 1 加入窗口:cnt[1] = 1

      2. 2. 第一次出現 1,sum += 1→ sum=4

      3. 3. 判斷 sum(4) ≥ 4?滿足條件,開始收縮左指針:

      • ? 更新最短長度:ans = min(2, 3-2+1=2) → ans 保持 2

      • ? 移出左邊界元素 3:cnt[3] = 0,3 徹底離開窗口

      • ? sum 減去 3 → sum=1

      • ? 左指針右移:left=3

      4. 此時 sum=1 < 4,停止收縮

      5. 當前窗口:[3,3],長度1,不滿足條件

      最終結果

      遍歷完整個數組后,ans=2(不是無窮大),返回結果 2。

      時間復雜度 & 空間復雜度 1. 時間復雜度

      • ? 右指針從頭到尾遍歷數組一次,共執行 n 次(n 為數組長度)

      • ? 左指針只會向右移動,不會回退,整個過程最多執行 n 次

      • ? 哈希表的增、刪、查操作都是O(1)常數時間

      • ? 總時間復雜度:O(n)(線性時間),能高效處理 10萬 長度的數組

      2. 額外空間復雜度
      • ? 僅使用了一個哈希表cnt存儲窗口內的不同元素

      • ? 哈希表的最大存儲量 = 數組中不同元素的個數

      • ? 總額外空間復雜度:O(n)(最壞情況數組元素全不同)

      總結
      1. 1. 執行過程:右指針擴展窗口累加不同元素和,滿足條件后左指針收縮窗口,同步記錄最小長度;

      2. 2. 時間復雜度:O(n),適合大數據量;

      3. 3. 額外空間復雜度:O(n),用于存儲窗口內元素計數。

      Go完整代碼如下:

      package main

      import (
      "fmt"
      "math"
      )

      func minLength(nums []int, k int)int {
      cnt := map[int]int{}
      sum := 0
      left := 0
      ans := math.MaxInt

      for i, x := range nums {
      // 1. 入
      cnt[x]++
      if cnt[x] == 1 {
      sum += x
      }

      for sum >= k {
      // 2. 更新答案
      ans = min(ans, i-left+1)

      // 3. 出
      out := nums[left]
      cnt[out]--
      if cnt[out] == 0 {
      sum -= out
      }
      left++
      }
      }

      if ans == math.MaxInt {
      return-1
      }
      return ans
      }

      func main() {
      nums := []int{2, 2, 3, 1}
      k := 4
      result := minLength(nums, k)
      fmt.Println(result)
      }

      Python完整代碼如下:

      # -*-coding:utf-8-*-

      import math

      defminLength(nums, k):
      cnt = {}
      sum_val = 0
      left = 0
      ans = math.inf

      for i, x inenumerate(nums):
      # 1. 入
      cnt[x] = cnt.get(x, 0) + 1
      if cnt[x] == 1:
      sum_val += x

      while sum_val >= k:
      # 2. 更新答案
      ans = min(ans, i - left + 1)

      # 3. 出
      out_val = nums[left]
      cnt[out_val] -= 1
      if cnt[out_val] == 0:
      sum_val -= out_val
      left += 1

      if ans == math.inf:
      return -1
      return ans

      if __name__ == "__main__":
      nums = [2, 2, 3, 1]
      k = 4
      result = minLength(nums, k)
      print(result)

      C++完整代碼如下:

      #include  
      
      #include
      #include
      #include
      #include

      usingnamespace std;

      int minLength(vector& nums, int k) {
      unordered_map cnt;
      int sum = 0;
      int left = 0;
      int ans = INT_MAX;

      for (int i = 0; i < nums.size(); i++) {
      int x = nums[i];

      // 1. 入
      cnt[x]++;
      if (cnt[x] == 1) {
      sum += x;
      }

      while (sum >= k) {
      // 2. 更新答案
      ans = min(ans, i - left + 1);

      // 3. 出
      int out_val = nums[left];
      cnt[out_val]--;
      if (cnt[out_val] == 0) {
      sum -= out_val;
      }
      left++;
      }
      }

      if (ans == INT_MAX) {
      return-1;
      }
      return ans;
      }

      int main() {
      vector nums = {2, 2, 3, 1};
      int k = 4;
      int result = minLength(nums, k);
      cout << result << endl;
      return0;
      }

      我們相信人工智能為普通人提供了一種“增強工具”,并致力于分享全方位的AI知識。在這里,您可以找到最新的AI科普文章、工具評測、提升效率的秘籍以及行業洞察。 歡迎關注“福大大架構師每日一題”,發消息可獲得面試資料,讓AI助力您的未來發展。

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      四川女子推搡哨兵后續:官媒定調,知情人曝內幕,代價遠不止坐牢

      四川女子推搡哨兵后續:官媒定調,知情人曝內幕,代價遠不止坐牢

      行者聊官
      2026-05-12 22:07:54
      炸裂!皇馬新帥鎖定,狂人即將回歸,老佛爺必須滿足 3 個條件

      炸裂!皇馬新帥鎖定,狂人即將回歸,老佛爺必須滿足 3 個條件

      奶蓋熊本熊
      2026-05-13 03:55:20
      斯基拉:迪巴拉準備接受新合同,年薪從800萬歐降到250萬歐

      斯基拉:迪巴拉準備接受新合同,年薪從800萬歐降到250萬歐

      懂球帝
      2026-05-12 19:34:22
      8年前擊敗北大碩士,拿下詩詞大會冠軍的外賣大叔,如今過得怎樣

      8年前擊敗北大碩士,拿下詩詞大會冠軍的外賣大叔,如今過得怎樣

      從零到一研究所
      2026-05-09 16:17:39
      女人是不是喜歡你,她的肢體反應很誠實,一看便知

      女人是不是喜歡你,她的肢體反應很誠實,一看便知

      葉飛飛情感屋
      2026-05-12 15:41:46
      杭州蕭山綠色智造產業園建設發展有限公司副經理呂華豐被查

      杭州蕭山綠色智造產業園建設發展有限公司副經理呂華豐被查

      都市快報橙柿互動
      2026-05-12 20:25:31
      4-3爆冷晉級,0-4轟然淘汰!東部最大的偽強隊,三巨頭也該散伙了

      4-3爆冷晉級,0-4轟然淘汰!東部最大的偽強隊,三巨頭也該散伙了

      籃球掃地僧
      2026-05-12 11:30:13
      油價再這么漲下去,恐怕全世界都要買電車了

      油價再這么漲下去,恐怕全世界都要買電車了

      流蘇晚晴
      2026-05-10 20:25:18
      世界杯還沒開踢,中國球迷先“退票”了

      世界杯還沒開踢,中國球迷先“退票”了

      每日經濟新聞
      2026-05-11 22:56:12
      在阿根廷隊風生水起,在馬競卻踢不上主力,阿爾馬達欲離隊

      在阿根廷隊風生水起,在馬競卻踢不上主力,阿爾馬達欲離隊

      kio魚
      2026-05-13 01:16:18
      有了電車,越來越多人在車里午休,成了打工人的“移動午睡艙”!

      有了電車,越來越多人在車里午休,成了打工人的“移動午睡艙”!

      普陀動物世界
      2026-05-11 07:03:49
      新華社消息|外交部:亞太各國應共同抵制日本“新型軍國主義”妄動

      新華社消息|外交部:亞太各國應共同抵制日本“新型軍國主義”妄動

      新華社
      2026-05-12 19:50:12
      森林北回應分手,字字藏深意,汪峰卻一言不發,章子怡早把他看透

      森林北回應分手,字字藏深意,汪峰卻一言不發,章子怡早把他看透

      阿握聊事
      2026-05-13 03:08:53
      一個冰冷現實:中印沖突正全方位升級,中國越避讓,印度越對抗

      一個冰冷現實:中印沖突正全方位升級,中國越避讓,印度越對抗

      共工之錨
      2026-05-12 23:54:13
      湖人出局!東契奇火速發聲:退出國家隊,這個夏天我要專心帶娃

      湖人出局!東契奇火速發聲:退出國家隊,這個夏天我要專心帶娃

      仰臥撐FTUer
      2026-05-12 16:10:08
      北京晉級更衣室采訪!翟曉川曝全隊群策群力,周琦展高球商!

      北京晉級更衣室采訪!翟曉川曝全隊群策群力,周琦展高球商!

      籃球資訊達人
      2026-05-13 02:25:24
      中國U17勝卡塔爾,21年重返世少賽,八強戰東道主

      中國U17勝卡塔爾,21年重返世少賽,八強戰東道主

      小驛拍客在北漂
      2026-05-13 03:04:00
      糖尿病人:清晨三忌、午間三不要,晚間三不做,全天血糖穩如泰山

      糖尿病人:清晨三忌、午間三不要,晚間三不做,全天血糖穩如泰山

      橘子約定
      2026-05-11 21:34:28
      失業后我才明白,只有愚蠢的人,才會花幾十萬在農村建房子

      失業后我才明白,只有愚蠢的人,才會花幾十萬在農村建房子

      三農雷哥
      2026-05-12 11:36:27
      擠走董卿、靠爹上位、央視“窮鬼”,龍洋的私生活謠言有多離譜?

      擠走董卿、靠爹上位、央視“窮鬼”,龍洋的私生活謠言有多離譜?

      豬小艷吖
      2026-05-12 03:50:15
      2026-05-13 05:20:49
      moonfdd incentive-icons
      moonfdd
      福大大架構師每日一題
      1223文章數 67關注度
      往期回顧 全部

      科技要聞

      宇樹發布載人變形機甲,定價390萬元起

      頭條要聞

      特朗普稱將同中方討論對臺軍售和黎智英案 外交部回應

      頭條要聞

      特朗普稱將同中方討論對臺軍售和黎智英案 外交部回應

      體育要聞

      騎士終于玩明白了?

      娛樂要聞

      白鹿風波升級!掉粉20萬評論區淪陷

      財經要聞

      利潤再腰斬 京東干外賣后就沒過過好日子

      汽車要聞

      吉利銀河“TT”申報圖曝光 電動尾翼+激光雷達

      態度原創

      本地
      家居
      游戲
      時尚
      軍事航空

      本地新聞

      用蘇繡的方式,打開江西婺源

      家居要聞

      極簡主義下的居住場域與空間

      活久見!電棍與香鍋怒噴被擼圈開除后和解,祝Mlxg母親節日快樂

      普通人真該學學如何穿搭!多穿裙子比褲子更時髦,大方提氣質

      軍事要聞

      知情人士披露:美國或考慮恢復對伊朗軍事行動

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: AV在线亚洲天堂| 亚洲av熟女一区二区| 亚洲区中文字幕日韩精品| 国产乱妇乱子伦视频免费观看| 91精品国产无码在线观看| 国产亚洲精品自在久久| 成人精品区| 亚洲成人资源在线观看| 国产精品女人毛片在线看| 亚洲人成小说网站色在线| 香蕉视频在线观看www| 黄色99| 国产精品国产三级国产av剧情| 亚洲熟女精品一区二区| 婷婷久久香蕉五月综合加勒比| 熟妇人妻无码中文字幕老熟妇| 高级艳妇交换俱乐部小说 | 国产精品白丝久久AV网站| 国产农村一国产农村无码毛片| 亚洲永久精品ww47永久入口| 狠狠爱俺也去去就色| 亚洲av中文乱码一区二| 亚洲精品乱码久久久久久自慰| 热久久这里是精品6免费观看| 天堂无码在线| 一本大道久久久久| 白嫩丰满少妇美女无套| 高清性欧美暴力猛交| 无码人妻品一区二区三区精99| 亚洲成a人片在线观看的电影| 免费午夜无码片在线观看影院| 亚洲第一男人天堂| 男人天堂亚洲天堂女人天堂 | 亚洲天堂av 在线| 韩国午夜理伦三级| 精品一区二区二区| 日韩城人网站| 中文字幕在线国产精品| 国产一区二区三区精品片| 一区二区三区久久| 天堂久久蜜桃一区二区三区|