题目:
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
示例 1:
输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]
源码:
class Solution {
public void rotate(int[] nums
, int k
) {
int len
= nums
.length
;
if (k
> len
) {
k
= k
- len
;
}
int[] array
= new int[len
];
int b
= k
;
for (int i
= 0; i
< k
; i
++) {
array
[i
] = nums
[len
- b
];
b
--;
}
int a
= 0;
for (int j
= k
; j
< len
; j
++) {
array
[j
] = nums
[a
];
a
++;
}
for (int i
= 0; i
< len
; i
++) {
nums
[i
] = array
[i
];
}
}
}