2021-10-08|閱讀時間 ‧ 約 1 分鐘

【LeetCode】189. Rotate Array

之前跳過的題目,回來補完成。
Input: nums = [1,2,3,4,5,6,7], k = 3 Output: [5,6,7,1,2,3,4] Explanation: rotate 1 steps to the right: [7,1,2,3,4,5,6] rotate 2 steps to the right: [6,7,1,2,3,4,5] rotate 3 steps to the right: [5,6,7,1,2,3,4]
依照題目的敘述,翻譯做陣列滾動似乎比較有感覺,每增加一次step,陣列內元素就往右滾一格。
實際上要達到題目要求的結果,分別做3次陣列反轉就可以了 1.對全部元素做反轉 2.對k位置以前的元素再反轉一次 3.對k位置以後的元素再反轉一次
例外狀況: 有可能陣列大小小於k值得要求,另外先以k對陣列大小取餘數,確保指標會在陣列範圍內。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.