An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place).
The goal is to rotate array A K times; that is, each element of A will be shifted to the right K times.
Write a function:
class Solution { public int[] solution(int[] A, int K); }
that, given an array A consisting of N integers and an integer K, returns the array A rotated K times.
For example, given
A = [3, 8, 9, 7, 6]
K = 3
the function should return [9, 7, 6, 3, 8]. Three rotations were made:
[3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7]
[6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9]
[7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8]
For another example, given
A = [0, 0, 0]
K = 1
the function should return [0, 0, 0]
Given
A = [1, 2, 3, 4]
K = 4
the function should return [1, 2, 3, 4]
Assume that:
N and K are integers within the range [0…100];
each element of array A is an integer within the range [−1,000…1,000].
In your solution, focus on correctness. The performance of your solution will not be the focus of the assessment.
Copyright 2009–2021 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

package solution
// you can also use imports, for example:
// import "fmt"
// import "os"
// you can write to stdout for debugging purposes, e.g.
// fmt.Println("this is a debug message")
func Solution(A []int, K int) []int {
// write your code in Go 1.4
if len(A)==0 || K==0 ||len(A)==K {
return A
}
if K >len(A){
K =K%len(A)
}
var res []int
res=append(res,A[len(A)-K:]...)
res=append(res,A[:len(A)-K]...)
return res
}

本文介绍了如何实现数组的K次旋转操作,给出了一个Go语言的解决方案,该函数接收一个整数数组A和一个整数K,返回旋转K次后的数组。例如,对于数组A=[3,8,9,7,6]和K=3,旋转后得到[9,7,6,3,8]。此算法适用于处理数组旋转问题,确保了数组元素的正确移位。
1254

被折叠的 条评论
为什么被折叠?



