题解 | #旋转数组# go + 三次翻转
旋转数组
http://www.nowcoder.com/practice/e19927a8fd5d477794dac67096862042
go + 三次翻转
/** * 旋转数组 * @param n int整型 数组长度 * @param m int整型 右移距离 * @param a int整型一维数组 给定数组 * @return int整型一维数组 */ func solve( n int , m int , a []int ) []int { // write code here // m 大于 n时,对 m 进行修剪 if m > n { m = m%n } // 分三次翻转 // 左半部分翻转 swapArr(a, 0, n-m-1) // 右半部分翻转 swapArr(a, n-m, n-1) // 整体翻转 swapArr(a, 0, n-1) return a } func swapArr(arr []int, s, e int) { for ; s < e ; e, s = e-1, s+1 { arr[e], arr[s] = arr[s], arr[e] } }