【发布时间】:2016-07-02 10:56:44
【问题描述】:
这应该是一个相当直截了当的问题,但我似乎无法弄清楚如何获得非方阵的所有对角线。
我已经有了我认为的对角线(例如:https://stackoverflow.com/a/33769730),但我也需要相反的对角线。
示例数组:
1 2 3 4
5 6 7 8
9 10 11 12
当前输出:
[1], [2,5], [3,6,9], [4,7,10], [8,11], [12]
预期的额外输出:
[4], [3,8], [2,7,12], [1,6,11], [5,10], [9]
我正在寻找更多的伪代码,以便更好地理解这一点。
编辑:代码我必须得到对角线(因为似乎没有人想要关注链接)
int ndiags = width + height - 1;
System.out.println("---");
for (int diag = 0; diag < ndiags; diag++) {
int row_stop = Math.max(0, diag - width + 1);
int row_start = Math.min(diag, height - 1);
for (int row = row_start; row >= row_stop; row--) {
// on a given diagonal row + col = constant "diag"
// diag labels the diagonal number
int col = diag - row;
System.out.println(col + "," + row);
relax(col, row);
}
System.out.println("---");
}
我尝试了以下方法,但我仍然只是得到对角线:
int ndiags = width + height - 1;
System.out.println("---");
for (int diag = 0; diag < ndiags; diag++) {
int row_stop = Math.max(0, diag - height + 1);
int row_start = Math.min(diag, width - 1);
for (int row = row_start; row >= row_stop; row--) {
// on a given diagonal row + col = constant "diag"
// diag labels the diagonal number
int col = diag - row;
System.out.println(col + "," + row);
relax(col, row);
}
System.out.println("---");
}
【问题讨论】:
-
发布您已有的内容。另外,这是 Java 还是 C#?
-
无所谓 - 我可以在两者之间进行翻译
-
不过,您在问题中说您已经拥有了一些东西。你能把它贴出来并说它有什么问题吗?