题解 | #旋转数组#
旋转数组
https://www.nowcoder.com/practice/e19927a8fd5d477794dac67096862042
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 旋转数组 * @param n int整型 数组长度 * @param m int整型 右移距离 * @param a int整型一维数组 给定数组 * @return int整型一维数组 */ //三次翻转的方法;把移动->翻转 func solve(n int, m int, a []int) []int { // write code here m = m % n //三次翻转 for i, j := 0, n-1; i < j; i, j = i+1, j-1 { a[i], a[j] = a[j], a[i] } //第二次翻转以m为界限 for i, j := 0, m-1; i < j; i, j = i+1, j-1 { a[i], a[j] = a[j], a[i] } //第三次翻转:m右边的部分 for i, j := m, n-1; i < j; i, j = i+1, j-1 { a[i], a[j] = a[j], a[i] } return a }