[leetcode面试经典150题]-189-轮转数组
给定一个整数数组 nums
,将数组中的元素向右轮转 k
个位置,其中 k
是非负数。
比较简单,我们另外一个参数去存储数组边缘的数据,然后在数组按顺序移动即可
func rotate(nums []int, k int) {
temp := 0
for i :=0;i<k;i++{
temp = nums[len(nums)-1]
for j :=len(nums)-1;j>=1;j--{
nums[j] = nums[j-1]
}
nums[0] = temp
}
}
但是运行下来发现时间复杂度比较高,那么就得去思考能否优化
很明显我们这里因为使用了双重循环,所以导致时间复杂度 O ( n 2 ) O(n^2) O(n2)