以下是 Go 语言实现的 rotate 函数,通过三次翻转操作实现数组循环右移:

func rotate(nums []int, k int) {
    n := len(nums)
    k = k % n
    if k == 0 {
        return
    }
    reverse(nums)
    reverse(nums[:k])
    reverse(nums[k:])
}

func reverse(nums []int) {
    n := len(nums)
    for i := 0; i < n/2; i++ {
        nums[i], nums[n-i-1] = nums[n-i-1], nums[i]
    }
}

该函数接收一个整数数组和一个整数 k 作为参数,将数组循环右移 k 个位置。该函数通过三次翻转操作实现旋转。首先,将整个数组翻转;然后,将前 k 个元素翻转;最后,将剩余的元素翻转。


原文地址: https://www.cveoy.top/t/topic/nf67 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录