将包含 n 个元素的数组向右旋转 k 步。
例如,如果 n = 7 , k = 3,给定数组 [1,2,3,4,5,6,7] ,向右旋转后的结果为 [5,6,7,1,2,3,4]。
注意:
尽可能找到更多的解决方案,这里最少有三种不同的方法解决这个问题。
提示:
“””
分析:主要考察反转数组
先把k跟数组长度取余数
把原数组划分为两个部分来看:前 n - k 个元素 [1,2,3,4]和 后k个元素 [5,6,7]
定义 reverse 反转数组方法,
前 n - k 个元素 [1,2,3,4] 反转后 [4,3,2,1]
对后k个元素 [5,6,7] 进行反转得到 [7,6,5]
将前后元素 [4,3,2,1,7,6,5] 反转:[5,6,7,1,2,3,4]
“””
1 | class Solution: |