我尝试使用递归从网格的左上角移动到右下角。然而,在每一个时间点,我只能向上、向下、向左或向右移动我所站的数字所给出的正方形数。
举个例子,如果你站在一个3上,我可以向左移动三个格子,向右移动三个格子,向上移动三个格子,或者向下移动三个格子。我不能离开棋盘。
我试图寻找一个起点,但我是空白的。有人可以帮忙吗?
public int traverse(int[][] grid, int size, int x, int y){
// base condition
if(x == size-1 & y == size-1)
return 0;
// value of current square
int square = grid[y][x];
// move right
if(x + square < size)
return square + traverse(grid, size, x + square, y);
// move down
if(y + square < size)
return square + traverse(grid, size, x, y + square);
// move left
if(x - square > -1)
return square + traverse(grid, size, x - square, y);
// move up
if(y - square > -1)
return square + traverse(grid, size, x, y - square);
return 0;
}
您需要任务的DFS,它还可以跟踪当前访问的路径。这是一个简单的Python实现,可以很容易地在其他语言中进行优化和实现。
def dfs(i, j, matrix, visited, path):
# check if current point if out of bounds
if i < 0 or i> len(matrix):
return []
if j < 0 or j> len(matrix[0]):
return []
# check if current point has been visited earlier
if visited.get((i,j)):
return visited[(i,j)]
# add current point to path
new_path = path + [(i,j)]
# check if we've reached bottom right point
if i==len(matrix)-1 and j == len(matrix[0])-1:
return new_path
# so that dfs doesn't get stuck in infinite recursion for cycles
visited[(i,j)] = []
value = matrix[i][j]
possible_paths = [
dfs(i+value,j,matrix,visited,new_path),
dfs(i-value,j,matrix,visited,new_path),
dfs(i,j+value,matrix,visited,new_path),
dfs(i,j-value,matrix,visited,new_path)
]
for option in possible_paths:
if option:
# we have found a path
visited[(i,j)] = option
return option
#no path found
return []
问题内容: 我正在尝试将元素的位置增加 x个 像素。到目前为止,这是我尝试过的: 我知道这行不通,但是我想知道是否有可能像这样增加位置值。 问题答案: 因为它是一个以结尾为单位的字符串,就像只有将数字部分转换为实际数字时才可以对它进行数学运算。 假设您有一个定位的元素(因此设置值会做些事情),并且已经在元素上直接设置了样式(而不是通过CSS设置)(因此获取实际上会为您带来一些东西),则可以通过解析
谢了! 插图图像
如您所见,GravityCompat不允许我放右而不是结束或开始,如果我把它放入XML中,它就会崩溃。 出现下一个错误:
问题内容: 是否有更改此文本的CSS代码 到这个 问题答案: 尝试这个 编辑:将此类应用于段落标记,您应该得到想要的结果。
我读过segues上的其他帖子,但没有一篇能解决我的问题。 简单地说,我的ViewController就像一本书一样被订购。我希望从左到右的向后过渡(例如:从第9页到第8页)始终存在(滑动)。我想从右到左向前过渡(从第9页到第10页)。 是的,如果您一页接一页地分页,我的导航控制器后退按钮(左上角)会显示为这样。但是,如果您从索引跳入,那么导航控制器上的后退功能会将您带回索引。 我的目标是,如果用
如何在一个二维矩阵中找到从左上角到右下角单元格的最小路径,其中我们可以在北、南、东、西方向上遍历。