python实现数组平移K位问题 |
||||||
+ 目录
python数组平移K位
?
Python对数组进行循环移位
要求对含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。
分析方法一:蛮力法 要求将数组元素循环右移K位,只需要每次将数组中元素右移一位,循环K次即可。如原数组为abcd1234,右移4位具体移动过程为abcd1234-->4abcd123-->34abcd12-->1234abcd。 方法二:翻转法 直接上例子,对于数组序列A = [123456],如何实现循环右移2位功能?将数组A分成两个部分A[0,N-K-1]和A[N-K,N-1],将这两部分分别翻转,然后放在一起再翻转,具体如下:
代码实现
?
运行结果:
?
|