每天属于自己的时间,就是慢慢的刷题的时候,啥也不用想,沉浸在写出最佳程序的过程中,沉浸在自己阅读大牛代码,提升自我的过程中,那种满足感,真的很让人享受<.>
题目:右移数组
1 | 已知一个长度为 n 的数组和一个正整数 k,并且最多只能使用一个用于交换数 组元素的附加空间单元,试设计算法得到原数组循环右移 k 次的结果并分析算法的时间复杂度。 |
解题思路:
方法:
在自己尝试的过程中,发现了一个很有趣的规律,
例如
arr=1 2 3 4 5 n=5,k=2
显然右移两位以后的数组为
4 5 1 2 3
而该数组的逆序为
3 2 1 5 4
恰好是123 45子数组的逆序
由此,该算法就很容易了
1 |
|