iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
自我挑戰組

從零開始學習LeetCode系列 第 8

Day8 Contains Duplicate II

  • 分享至 

  • xImage
  •  

題目:檢查是否在 k 範圍內有重複元素
https://ithelp.ithome.com.tw/upload/images/20250922/20169339SscqamuTYc.jpg


解法一
https://ithelp.ithome.com.tw/upload/images/20250922/20169339Udo8zspXPP.jpg

  • 雙層迴圈檢查所有配對
  • 大數據會 TLE(和 Day 7 同樣問題)
  • https://ithelp.ithome.com.tw/upload/images/20250922/20169339rgOPIKQHwS.jpg

解法二
https://ithelp.ithome.com.tw/upload/images/20250922/20169339QOPZAhv753.jpg

  • 用 HashMap 記錄每個數字出現的「最新索引」
  • 如果再次遇到相同數字,就計算索引差距,檢查是否 ≤ k
  • 效率高

解法三
https://ithelp.ithome.com.tw/upload/images/20250922/20169339QGpul52WMc.jpg

  • 維護一個大小 ≤ k 的滑動視窗,用 Set 來檢查是否有重複。
  • k 遠小於 n 時更省空間

上一篇
Day7 Contains Duplicate
系列文
從零開始學習LeetCode8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言