- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须用C语言构建一个递归函数来检查矩阵中是否存在路径(NxN大小,内部只有0和1输入),其中我从左上角开始,到右下角结束。我只允许通过零并向上、向下、向右、向左行走。
我从左上角的 (0,0) 开始我的路径
我尝试过这个,但效果不佳。
int x = 0, y = 0;
int isPathExist(char board[][N], int row, int col)
{
board[x][y] = 1;
if (x == N - 1 && y == N - 1) {
return 1;
}
if (x + 1 < N && board[x + 1][y] == 0) {
if (isPathExist(board, x + 1, y)) {
return 1;
}
}
if (x - 1 >= 0 && board[x - 1][y] == 0) {
if (isPathExist(board, x - 1, y)) {
return 1;
}
}
if (y + 1 < N && board[x][y + 1] == 0) {
if (isPathExist(board, x, y + 1)) {
return 1;
}
}
if (y - 1 >= 0 && board[x][y - 1] == 0) {
if (isPathExist(board, x, y - 1)) {
return 1;
}
}
board[x][y] = 0;
return 0;
}
最佳答案
基本(最简单)的方法是“将左(或右手)手放在墙上”。这意味着执行以下步骤的循环:
根据您上次移动时所面对的方向,使用顺时针顺序确定移动方向(例如,如果您向北移动,则检查是否可以向西,然后向北,然后向东,然后向南)。
朝您确定可以移动的第一个方向移动
检查您以前是否去过该位置,如果去过则丢弃您所走的部分路径。例如,如果您向北移动进入死胡同,并且必须向南移动,请修改到目前为止所走的路径,以便看起来您一开始就没有去过北方。最简单的方法是对步数进行编号 - 每次移动到以前没有去过的位置时,在该位置存储“到目前为止我移动的次数”值,以便稍后可以使用该值更容易放弃之前采取的路径的那部分。先前采取的路径可以是“位置或丢弃”值的数组,以“每次移动的次数”为索引。
检查是否已到达导出,以及是否还没有循环回到起点。
在实现此循环(无递归)并检查以确保其正常工作后;你只需要通过某种方式将不必要的递归塞进代码中,让代码变得更糟糕(更慢,更难以阅读,并且更有可能因耗尽堆栈空间而崩溃)。最简单的方法是修改循环,以便最后一件事(“检查是否已到达导出,以及是否还没有循环回到开始处”)变成函数调用(“检查是否已到达”)已到达导出,如果您还没有给自己打电话”)。
警告: 你的问题说“找到一条路径”,这个算法会做到这一点。然而,如果有多个可能的路径,该算法可能找不到最短路径(或最长路径)。出于这个原因(假设它是大学作业或其他什么),我建议检查要求以确保“任何路径”都是可接受的。
关于c - 如何在C中使用递归找到穿过迷宫的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54060240/
我在 UITextField 上遇到了这个奇怪的错误,有时有一条线(实际上更多的是透明条)穿过它。有谁知道怎么去掉吗? 这是图片 xib 文件的链接:http://db.tt/7l2Bq42 代码链接
这个问题在这里已经有了答案: ggplot2 and a Stacked Bar Chart with Negative Values (1 个回答) 7年前关闭。 friend 们, 如何在 x 轴
首先我是初学者,我想在向下滚动页面并穿过某个 div 时显示一个菜单栏(当我页面顶部的实际菜单栏不再可见时)这个网站有一个完美的例子来解决我的问题:http://lenssenmannenmode.n
我怎样才能阻止这种情况发生? 这是我联系我们表单的代码。我正在使用 Bootstrap 。当我展开文本区域时,它会穿过分区。我可以通过添加内联 CSS 在文本区域内尝试任何替代方法吗?
如何用matplotlib绘制这样的图? 最佳答案 检查 this example来自 this group 例如: from matplotlib import pyplot as plt impo
所以我一直在研究一款游戏,到目前为止最大的问题是我们无法让玩家与场上的任何物体发生碰撞。相反,他们直接穿过树。谁能告诉我为什么?这是我尝试用于碰撞检测的代码: for tree in treelist
我有这个代码: my link 1 my link 2 my link 3 当我对 应用填充时像这样: ul { list-style: none; margin: 3
我对 pinescript 很新,我被困在这一点上......我只想在 10 EMA 穿过 21 EMA 而 21 高于 50 EMA 和 50 EMA 高于 200 EMA 时绘制交叉。这是指示多头
我是一名优秀的程序员,十分优秀!