技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2025 iThome 鐵人賽
DAY
18
0
自我挑戰組
從零開始學習LeetCode
系列 第
18
篇
Day 18 Rotate Array
17th鐵人賽
pinggg
2025-10-02 22:15:29
31 瀏覽
分享至
題目:給定一個長度為 n 的整數陣列 nums,以及一個整數 k,請將陣列「向右旋轉」k 步
解法一
直觀,但效率差
適合「第一次接觸」的同學練習
註解
nums.pop() → 移除並回傳陣列最後一個元素
nums.insert(0, last) → 插到陣列的最前面
重複 k 次後,陣列就被旋轉
理解
想像你有一列人排隊:
[1,2,3,4,5,6,7]
旋轉一次,就是把最後一個人(7)拉到最前面:
[7,1,2,3,4,5,6]
旋轉三次,就依序拉出 7、6、5 到最前面
這樣就得到結果 [5,6,7,1,2,3,4]
缺點是效率不好,因為每次 insert 都要移動其他元素
解法二
額外陣列
速度快,但需要 O(n) 額外空間
註解
(i + k) % n → 計算新位置,保證不會超出邊界
建立新陣列 newArr 來存放旋轉後的結果
最後再把結果覆蓋回原本 nums
理解
就像你要搬家:
每個人(數字)都有一個新位置(用公式算出來)
搬到新房子(newArr)後,再全部搬回舊房子(nums)
解法三
不需要額外空間,效率高
註解
reverse(start, end) → 自己寫一個函式,交換陣列前後元素
整體操作順序:
(1)[1,2,3,4,5,6,7] → [7,6,5,4,3,2,1]
(2)前 k=3 個反轉 → [5,6,7,4,3,2,1]
(3)後面反轉 → [5,6,7,1,2,3,4]
理解
就像把一張紙上的數字「翻轉」幾次:
(1)先把整張紙上下顛倒
(2)把前 k 個翻回來
(3)把後面翻回來
最後就得到「旋轉」的效果
留言
追蹤
檢舉
上一篇
Day 17 Move Zeroes
下一篇
Day 19 Intersection of Two Arrays II
系列文
從零開始學習LeetCode
共
20
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
16
Day 16 股票題系列總整理
17
Day 17 Move Zeroes
18
Day 18 Rotate Array
19
Day 19 Intersection of Two Arrays II
20
Day 20 Majority Element
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
15673
篇
完賽人數
180
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
17th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
請教大神.這個google試算表到底發生了什麼事情?輸入或是修改資料整張工作表會被清空,已自行解決完成.感謝.
如何使用RPA軟體搜尋相關新聞
Analysis Services資料庫還原失敗
useCrudSchemas的swtich欄位吃不到網址的參數
對Kotlin的sealed class機制不太清楚
excel web adi 巨集,出現網頁指令碼錯誤
發文一直被判定廣告或垃圾訊息
opencart4.1套件更新
熱門回答
請教大神.這個google試算表到底發生了什麼事情?輸入或是修改資料整張工作表會被清空,已自行解決完成.感謝.
如何使用RPA軟體搜尋相關新聞
熱門文章
06-02:黃金龍的AI網站
[為你自己學 n8n] 第 15 天,關在小房間的天才:AI Agent 突圍記!
第14天,Cloudflare Workers 與 KV:NoSQL 資料庫 / 阿亮沙威瑪 | 30天板橋湳雅夜市
[為你自己學 n8n] 第 16 天,我的 Line 機器人會記帳!(上)
第14天,實作S/MIME封裝的數位簽章 / 享之饌台南虱目魚(台北中正)| 30天滷肉飯
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}