我认为这个问题有一个简单的解决方案,几个for循环和一些花哨的计数器,但显然它更复杂.
所以我的问题是,你如何编写(在C中)对角线条中方形矩阵的函数遍历.
例:
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
必须按以下顺序遍历:
[1],[2,4],[3,5,7],[6,8],[9]
Run Code Online (Sandbox Code Playgroud)
上面的每个条带都用方括号括起来.其中一个要求是能够区分条带.这意味着你知道什么时候开始新的条带.这是因为我必须为条带中的每个项目调用另一个函数,然后在新条带的开头之前调用.因此,没有代码重复的解决方案是理想的.
我需要在这里完成同样的事情,但是要使用任何矩阵,而不仅仅是方形矩阵.此外,遍历的方向需要相反.我试着编辑我在那里找到的代码,但无法弄明白.
谢谢.
所以我发现这个线程在对角遍历数组时非常有用.我被困在镜像上了.例如:
var m = 3;
var n = 4;
var a = new Array();
var b = 0;
for(var i = 0; i < m; i++) {
a[i] = new Array(n);
for(var j = 0; j < n; j++) {
a[i][j] = b;
b++;
}
}
for (var i = 0; i < m + n - 1; i++) {
var z1 = (i < n) ? 0 : i - n + 1;
var z2 = (i …Run Code Online (Sandbox Code Playgroud)