<tr id="tp1vn"><td id="tp1vn"><dl id="tp1vn"></dl></td></tr>
  1. <p id="tp1vn"></p>
  2. <sub id="tp1vn"><p id="tp1vn"></p></sub>
    <u id="tp1vn"><rp id="tp1vn"></rp></u>
    <meter id="tp1vn"></meter>
      <wbr id="tp1vn"><sup id="tp1vn"></sup></wbr>
      日韩第一页浮力,欧美a在线,中文字幕无码乱码人妻系列蜜桃 ,国产成人精品三级麻豆,国产男女爽爽爽免费视频,中文字幕国产精品av,两个人日本www免费版,国产v精品成人免费视频71pao
      網易首頁 > 網易號 > 正文 申請入駐

      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.

      相關推薦
      熱點推薦
      中美峰會,蔡英文表態后,國民黨一人不裝了,新黨發聲,不一般

      中美峰會,蔡英文表態后,國民黨一人不裝了,新黨發聲,不一般

      DS北風
      2026-05-15 18:38:11
      布馮:當年買了輛保時捷但父親覺得張揚,不到一年我就賣了

      布馮:當年買了輛保時捷但父親覺得張揚,不到一年我就賣了

      懂球帝
      2026-05-14 09:57:48
      港獨、罵中國人,現在卻還想來內地撈金,這3位香港明星令人作嘔

      港獨、罵中國人,現在卻還想來內地撈金,這3位香港明星令人作嘔

      陳意小可愛
      2026-05-15 17:51:05
      同樣是國乒男隊功臣,王皓梁靖崑是兒子接機,他卻很低調是女兒接

      同樣是國乒男隊功臣,王皓梁靖崑是兒子接機,他卻很低調是女兒接

      凡知
      2026-05-14 15:05:20
      英國真的會成為穆斯林國家嗎?分享Claude的結論

      英國真的會成為穆斯林國家嗎?分享Claude的結論

      劉耘博士
      2026-05-14 08:50:43
      別只看尺度,這5部懸疑神作值得收藏

      別只看尺度,這5部懸疑神作值得收藏

      天天美劇吧
      2026-05-15 19:43:46
      千萬網友組成最悲壯調查兵團,全死在了各大地圖APP的假公廁門前

      千萬網友組成最悲壯調查兵團,全死在了各大地圖APP的假公廁門前

      情報姬
      2026-05-13 23:05:41
      張雪機車半價承諾!因28歲的小伙評論:如果抗癌成功,立馬買輛張雪機車!

      張雪機車半價承諾!因28歲的小伙評論:如果抗癌成功,立馬買輛張雪機車!

      朗威談星座
      2026-05-15 16:25:49
      湖北釣友破紀錄,開始以為掛底,遛魚上岸一看是80斤的大鱤魚

      湖北釣友破紀錄,開始以為掛底,遛魚上岸一看是80斤的大鱤魚

      豆媽熱愛每一天
      2026-05-13 10:42:17
      兩性關系:55-65歲這十年,惜命最好的方式,不是鍛煉,做好這6點

      兩性關系:55-65歲這十年,惜命最好的方式,不是鍛煉,做好這6點

      三農老歷
      2026-04-13 17:10:06
      曝央視與國際足聯談判成功,價格相對合理,將于近日簽約

      曝央視與國際足聯談判成功,價格相對合理,將于近日簽約

      塵語者
      2026-05-15 11:20:11
      籃協增補集訓名單!張皓嘉杜潤旺的替補入選,球迷:杜鋒怎么看?

      籃協增補集訓名單!張皓嘉杜潤旺的替補入選,球迷:杜鋒怎么看?

      南海浪花
      2026-05-15 18:34:41
      密密麻麻!21至27號樓全“掛滿”了…

      密密麻麻!21至27號樓全“掛滿”了…

      上觀新聞
      2026-05-14 16:58:25
      三好老師的大長腿,夠你義務教育9年!

      三好老師的大長腿,夠你義務教育9年!

      貴圈真亂
      2026-05-15 11:17:56
      榴蓮多付10萬后續:銷售經理已經進去,女子宣布起訴商家

      榴蓮多付10萬后續:銷售經理已經進去,女子宣布起訴商家

      映射生活的身影
      2026-05-15 16:04:50
      ESPN記者:湖人不想放走詹姆斯,但他不會接受無理由的降薪

      ESPN記者:湖人不想放走詹姆斯,但他不會接受無理由的降薪

      懂球帝
      2026-05-14 21:29:14
      實錘內訌!廣東輸球后亂套,杜鋒嘴硬遭俱樂部連夜打臉,下課聲起

      實錘內訌!廣東輸球后亂套,杜鋒嘴硬遭俱樂部連夜打臉,下課聲起

      海闊山遙YAO
      2026-05-15 19:16:00
      男籃短訓營最新26人名單:增補趙繼偉胡明軒等8人 后場人員充足

      男籃短訓營最新26人名單:增補趙繼偉胡明軒等8人 后場人員充足

      醉臥浮生
      2026-05-15 17:41:26
      夏奇拉:這已經是我第四屆世界杯,Waka Waka是最愛歌曲之一

      夏奇拉:這已經是我第四屆世界杯,Waka Waka是最愛歌曲之一

      懂球帝
      2026-05-15 17:50:13
      四川武警營門推哨兵后續:大家都搞錯了罪名,她面臨的不是襲警罪

      四川武警營門推哨兵后續:大家都搞錯了罪名,她面臨的不是襲警罪

      奇思妙想草葉君
      2026-05-13 18:25:17
      2026-05-15 20:20:49
      moonfdd incentive-icons
      moonfdd
      福大大架構師每日一題
      1227文章數 68關注度
      往期回顧 全部

      科技要聞

      兩年聯姻一地雞毛,傳蘋果OpenAI瀕臨決裂

      頭條要聞

      美媒詢問是否認為現在的美國是"衰落國家" 外交部回應

      頭條要聞

      美媒詢問是否認為現在的美國是"衰落國家" 外交部回應

      體育要聞

      德約科維奇買的球隊,從第6級聯賽升入法甲

      娛樂要聞

      方媛為何要來《桃花塢6》沒苦硬吃?

      財經要聞

      騰訊掉隊,馬化騰戳破真相

      汽車要聞

      高爾夫GTI刷新紐北紀錄 ID. Polo GTI迎全球首秀

      態度原創

      旅游
      本地
      藝術
      親子
      公開課

      旅游要聞

      首屆中國新文創市集暨潮玩游園會打造文旅消費新場景

      本地新聞

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

      藝術要聞

      敦煌挖出王羲之書法!全卷2000字清晰如新!

      親子要聞

      這可是你自愿吃的啊~

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 九色综合狠狠综合久久| 欧美性猛交xxxx乱大交丰满| 视频一区视频二区在线视频| 国产亚洲精品成人av久久果冻| av片在线观看永久免费| 欧美人与动牲交xxxxbbbb| japanese无码中文字幕| 欧美18禁网站国外| 国产精品一区理论片| 午夜无码电影888不卡| 国产精品久久久| 精品亚洲韩国一区二区三区| 伊人婷婷色香五月综合缴激情| 国产女精品| 国产精品美女久久久久av福利 | 粗大的内捧猛烈进出视频| 99视频精品线视频在线观看| 国产一区二区免费播放| 无码AⅤ一区二区三区| 亚洲欧美乱综合图片区小说区| 成人乱码一区二区三区四区| 亚洲欧美日韩愉拍自拍美利坚| 午夜成人三级| 中文字幕亚洲综合久久综合| 老太bbwwbbww高潮| 少妇极品熟妇人妻| 久久亚洲精品无码av| 成人亚欧欧美激情在线观看| 日韩精品一区二区三区四区五区六| 久久五月精品综合网中文字幕| 亚洲欧美日韩中文字幕一区二区三区| 日本亚洲成高清一区二区三区| 亚洲综合国产成人丁香五月激情| 亚洲二页| 东京道一本热中文字幕| 亚洲美女高潮久久久久久久| 国产精品va在线观看一| 怡红院精品久久久久久久高清| 国产成人免费高清直播| 人人狠狠综合久久亚洲婷婷| 免费jizz|