给定一个数组,将数组中的元素向右移动 k
个位置,其中 k
是非负数。
解决方法:
1、使用额外的数组
用 n表示数组的长度,遍历原数组,将原数组下标为 i的元素放至新数组下标为 (i+k)mod n 的位置,最后将新数组拷贝至原数组即可。
该方法空间复杂度为O(n)
2、环状替换
3、 数组翻转
方法二与方法三的空间复杂度都是O(1)
给定一个数组,将数组中的元素向右移动 k
个位置,其中 k
是非负数。
解决方法:
1、使用额外的数组
用 n表示数组的长度,遍历原数组,将原数组下标为 i的元素放至新数组下标为 (i+k)mod n 的位置,最后将新数组拷贝至原数组即可。
该方法空间复杂度为O(n)
2、环状替换
3、 数组翻转
方法二与方法三的空间复杂度都是O(1)