假设我有job_number
的矩阵A
,并希望对角填充条目。
首先,我想填充主对角线,然后填充主对角线上方的对角线,直到等等。
然后在主对角线下方对角线
首先,我要填充n*n
颜色的主对角线,然后填充red
颜色的对角线上方的对角线,然后填充green
颜色的主对角线下方的对角线。
然后主要概念是在主要对角线填充之后我想填充它上面的对角线,然后在它下面,然后在它上面,在它下面直到矩阵被填充。
假设我有条目purple
我想要对角填充。
答案 0 :(得分:1)
考虑到没有关于矩阵设置的语言或信息......
一个好的策略是:
一如既往地自行检查空值和IOO异常。
这是我跑得很快的事情。希望它有所帮助。
注意:在哪里说 //做某事...... 是你需要改变你的细胞以做任何你需要的事情的地方。我会假设你正在使用会改变颜色的物体。?
package temp;
import java.util.Arrays;
public class DiagFiller {
private int dimension;
public DiagFiller(int dimension){
int[][] matrix = new int[dimension][dimension];
// Initialize your array cells.
for(int row = 0; row < matrix.length; row++){
for(int col = 0; col < matrix[row].length; col++){
matrix[row][col] = 0; // Initialize matrix value here
}
}
// For middle initial diagonal
for(int row = 0; row < dimension; row++){
for(int col = 0; col < dimension; col++){
if(row == col){
// Do something to this cell.
}
}
}
// For filling rest of matrix
for(int i = 1; i < dimension*2; i++){
// Loop for above diagonals.
int row = 0;
int col = i;
while(col < dimension){
matrix[row][col] = i; // Do something to above diagonal.
row++;
col++;
}
// Loop for below diagonals.
row = i;
col = 0;
while(row < dimension){
matrix[row][col] = i; // Do something to below diagonal.
row++;
col++;
}
}
// Print your array cells.
for(int row = 0; row < matrix.length; row++){
for(int col = 0; col < matrix[row].length; col++){
System.out.print(matrix[row][col] + " ");
}
System.out.println();
}
}
public static void main(String args[]){
DiagFiller df = new DiagFiller(8);
}
}
答案 1 :(得分:0)
我试图解决你的问题只是为了让你大致了解如何实现它。
可以根据您的要求进一步推广。
我的代码在java中,你可以在这里看到它:http://ideone.com/L4zu2j
为那些需要勺子喂食的人编辑-_-
UIViewController
输出
UIViewController
希望这会有所帮助。询问是否有任何疑问。