题解 | #调整牛群的位置#
调整牛群的位置
https://www.nowcoder.com/practice/cfa2130da69449229d8159561d39b0d3?tpId=354&tqId=10587948&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354
知识点:
三次反转
解题思路:
先算出真实要移动的k,再将1到k位反转,k+1到n位反转,最后将整个数组反转即可
语言:
Golang
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param k int整型
* @return int整型一维数组
*/
func rotate_left( nums []int , k int ) []int {
// write code here
n:=len(nums)
k=k%n
reverse(nums, 0, k-1)
reverse(nums, k, n-1)
reverse(nums, 0, n-1)
return nums
}
func reverse(nums []int,left,right int){
for left < right{
nums[left],nums[right]=nums[right],nums[left]
left++
right--
}
}
