javascript - 为什么当我更改矩阵时我的 JS 路径查找器算法不起作用
问题描述
我必须编写一个运行矩阵的代码,以找到通向“9”的最佳路径(仅在这些路径之上行走,并避免零)
在下面的示例中,结果正确(5 个步骤),但是如果我更改矩阵元素的位置,结果就会出错..
我能做些什么?我很感激任何帮助。
var matrix =
[[1,1,1,1],
[0,1,1,0],
[0,1,0,1],
[0,1,9,1],
[1,1,1,1]]
function runMatrix(matrix){
newPos = 0;
var resultr;
var resultc;
for( var i = 0, lenR = matrix.length; i < lenR; i++ ) {
for(var j = 0, lenC = matrix[i].length; j < lenC; j++){
if( matrix[i][j] == 9 ) {
resultr = i;
resultc = j;
break;
}
}
}
for( var i = 0; i < resultr; i++ ) {
var k = 0;
if(matrix[i+1][k] == 1){
if(matrix[i+1][k+1] == 9 || matrix[i+1][k-1] == 9){
newPos = newPos + 2;
}else{
newPos = newPos + 1;
}
}else{
for(k = 1; k < resultc; i++){
if(matrix[i][k] == 1 || matrix[i][k] == 9){
newPos = newPos + 1
if(matrix[i+1][k] == 1){
if(matrix[i+1][k+1] == 9 || matrix[i+1][k-1] == 9){
newPos = newPos + 2;
}else{
newPos = newPos + 1;
}
i++;
break;
}
}
}
}
}
console.log("Steps: "+newPos)
}
runMatrix(matrix)
更新 此矩阵不起作用,例如:
[[1,1,1,1],
[0,0,0,1],
[0,0,0,1],
[0,0,9,1],
[0,0,0,0]]
它返回 4
解决方案
推荐阅读
- c++ - MSBuild C++ - 命令行 - 我可以传递字符串类型定义吗?
- python - 如何为 Django 的“on_delete=models.SET_DEFAULT”设置默认值
- python - Pygame - 我正在尝试在 laberynt 游戏中改变关卡
- pdf - 如何在大型(200 页)pdf 上轻松调整亮度和对比度?
- python - 在 Python Pandas 中创建优先级
- schema - 协议缓冲区架构无效。导入“google/protobuf/any.proto”尚未加载:GCP/Pub-Sub
- ios - 如何将额外参数传递给链接到 XIB 文件的自定义 UIView?
- sql - 在 SQL 中组合行,使一个单元格包含多个项目
- kotlin - kotlin 中的 stackTrace 总是不为空吗?
- javascript - 如何使用不同的工作目录运行命令?