import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param k int整型
* @return int整型二维数组
*/
public int[][] rotateII (int n, int k) {
// write code here
k %= n;
int[][] g = new int[n][n];
int idx = 1;
for (int i = n - k; i < n; i++) {
for (int j = n - k; j < n; j++) {
g[i][j] = idx++;
}
for (int j = 0; j < n - k; j++) {
g[i][j] = idx++;
}
}
for (int i = 0; i < n - k; i++) {
for (int j = n - k; j < n; j++) {
g[i][j] = idx++;
}
for (int j = 0; j < n - k; j++) {
g[i][j] = idx++;
}
}
return g;
}
}
Java编程语言。
该题考察的知识点包括:
- 二维数组的使用:在Java中,使用
int[][]表示二维数组,并可以通过索引访问和修改数组元素。 - 循环控制:使用
for循环结构来遍历数组元素,并根据特定条件执行相应的操作。
代码的文字解释如下:
- 对于给定的整数
k,使用k %= n操作将k限制在[0, n)范围内,以处理k大于n的情况。 - 创建一个大小为
nxn的二维数组g,并将所有元素初始化为0。 - 然后,使用两个嵌套的
for循环,从n - k到n遍历数组的右上角区域。在这个区域内,将数组元素依次赋值为idx,然后idx自增1。 - 使用另外两个嵌套的
for循环,从0到n - k遍历数组的左下角区域。在这个区域内,同样将数组元素依次赋值为idx,然后idx自增1。 - 返回生成的二维数组
g作为结果。

京公网安备 11010502036488号