每日刷题-轮转数组

126 阅读1分钟

189. 轮转数组

给你一个数组,将数组中的元素向右轮转 k **个位置,其中 k **是非负数。


    let length = nums.count

    if length == 1 {

        return

    }

    let k1 = k % nums.count

    reverse(&nums, 0, length - 1)

    reverse(&nums, 0, k1 - 1)

    reverse(&nums, k1, length - 1)


}



func reverse (_ nums: inout[Int], _ start: Int, _ end: Int){

    var start = start

    var end = end
    while start < end {

        let temp = nums[start]

        nums[start] = nums[end]

        nums[end] = temp

        start += 1

        end -= 1

    }

}