旋转数组
输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4]
从指定的长度位,旋转数组
Swift
var newArray: [Int] = [] let array: [Int] = [10, 20, 30, 40, 50, 60] let k: Int = 3 for i in 0..let j: Int = (i + k) % array.count print(j, array[j]) newArray.append(array[j]) } print(array) print(newArray)
输出如下:
3 40 4 50 5 60 0 10 1 20 2 30 [10, 20, 30, 40, 50, 60] [40, 50, 60, 10, 20, 30]
newArray为旋转后的数组
将array所有元素替换
var newArray: [Int] = [] var array: [Int] = [10, 20, 30, 40, 50, 60] let k: Int = 3 for i in 0..let j: Int = (i + k) % array.count print(j, array[j]) newArray.append(array[j]) } array.replaceSubrange(0.. 优化一下上面试的实现,采用一个中间数组temp
var array: [Int] = [10, 20, 30, 40, 50, 60] let temp: [Int] = array let k: Int = 3 for i in 0..let j: Int = (i + k) % array.count let ele = temp[j] print(j, ele) array.replaceSubrange(i.. 函数实现如下
func rotate(_ nums: inout [Int], _ k: Int) { if k > 0 && k < nums.count { let temp = nums for i in 0..nums.replaceSubrange(i.. 调用
var nums: [Int] = [1,2,3,4,5,6,7,8] let k: Int = 3 rotate(&nums, k) print(nums)输出
[4, 5, 6, 7, 8, 1, 2, 3]



