之前跳過的題目,回來補完成。
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對陣列大小取餘數,確保指標會在陣列範圍內。