如何创建具有不同线长的二维数组倒计时?
How to create a 2D Array countdown with different line length?
我在理解以下任务时遇到了一点问题。
我应该像这样创建一个二维数组:
n = 4
-->
[4,4,4,4]
[3,3,3]
[2,2]
[1]
我只需要提示如何创建具有不同线长的二维数组,这样我就可以 return 在方法中使用它:
static int[][] arrayCountDown(int n) {...}
static int[][] arrayCountDown(int n){
int[][] array = new int[n][];
for( int i=0;i<n;i++){
array[i] = new int[n-i];
for(int j=0;j<n-i;j++){
array[i][j] = n-i;
}
}
return array;
}
如果有n
个级别,那么总共有n*(n+1)/2
个元素。不过没关系,随便填就可以了
在 C#
世界中,解决方案是:
static int[][] arrayCountDown(int n)
{
var array = new int[n][];
for(int i=0; i<n; i++)
{
int num = n-i;
int[] row = new int[num];
for(int k=0; k<num; k++)
{
row[k] = num;
}
array[i] = row;
}
return array;
}
我在理解以下任务时遇到了一点问题。 我应该像这样创建一个二维数组:
n = 4
-->
[4,4,4,4]
[3,3,3]
[2,2]
[1]
我只需要提示如何创建具有不同线长的二维数组,这样我就可以 return 在方法中使用它:
static int[][] arrayCountDown(int n) {...}
static int[][] arrayCountDown(int n){
int[][] array = new int[n][];
for( int i=0;i<n;i++){
array[i] = new int[n-i];
for(int j=0;j<n-i;j++){
array[i][j] = n-i;
}
}
return array;
}
如果有n
个级别,那么总共有n*(n+1)/2
个元素。不过没关系,随便填就可以了
在 C#
世界中,解决方案是:
static int[][] arrayCountDown(int n)
{
var array = new int[n][];
for(int i=0; i<n; i++)
{
int num = n-i;
int[] row = new int[num];
for(int k=0; k<num; k++)
{
row[k] = num;
}
array[i] = row;
}
return array;
}