javascript - 求矩阵/二维数组的 N 次遍历
问题描述
给定矩阵/二维数组 1 2 3 4 5 6 7 8 9
我们必须打印
7 4 1 5 9 6 3 在 javascript 中不使用内置函数
解决方案
这里有一个提示。
假设您的矩阵表示为一维整数数组:
m = [1,2,3,4,5,6,7,8,9];
逻辑上假定为“正方形”大小(1x1、2x2、3x3、4x4 等...)
所以上面的数组在逻辑上被假设为:
1 2 3
4 5 6
7 8 9
让我们使用一个辅助函数来帮助我们获得任何给定 (x,y) 位置的任何值。其中 (0,0) 是矩阵的左上角值
let getVal = (m, col, row) => {
let rowlen = Math.round(Math.sqrt(m.length));
let index = row * rowlen + col;
return m[index];
}
因此,getVal(m, 0, 0)
返回1
左上角并getVal(m,2,2)
返回右下角9
的值。
现在提供了那个小辅助函数,你认为你可以实现“从左下角向上”、“从左上角到右下角的对角线”和“从右下角向上”这三个 for 循环吗?
推荐阅读
- python - 如何打印来自while循环的每个输入值
- python - Is there a way to compare the last row of two different dataframes?
- unreal-engine4 - how to access a blueprint component with an Unreal pawn character spawned from the player start set up in the game mode?
- python - Storing collection information in a class
- python - Python multiprocessing is not calling function
- javascript - 如何获取输入填充的值
- reactjs - File structure and scripts for deploying next js app to netlify
- android-studio - pass string from startActivityForResult to onActivityResult in RecyclerView
- asp.net-core - How can I change the "Could not reconnect to the server" text in Blazor?
- python - How do I remove the comma at the end in python 3.7?