网站开发 流程,wordpress设置首主导航,湖北华路建设工程有限公司网站,wordpress主题119问题描述#xff1a;地上有一个m行n列的方格#xff0c;从坐标[0,0]到坐标[m-1,n-1].一个机器人从坐标[0,0]的格子开始移动#xff0c;他每次可以向左、右、上、下移动一格(不能移动到方格外)#xff0c;也不能进入行坐标和列坐标的数位之和大于k的格子。
public int numB…问题描述地上有一个m行n列的方格从坐标[0,0]到坐标[m-1,n-1].一个机器人从坐标[0,0]的格子开始移动他每次可以向左、右、上、下移动一格(不能移动到方格外)也不能进入行坐标和列坐标的数位之和大于k的格子。
public int numBit(int n)
{
int num0;
while(n/10!0)
{
numn%10;
nn/10;
}
numn;
return num;
}
int count0;public void dfs(int [][]matrix,int i,int j,int k,int [][]visited)
{
if(i0||imatrix.length||j0||jmatrix[0].length){return;}
if(visited[i][j]){return;}
if(numBit(matrix[i][j])k){return;}
visited[i][j]true;
count1;
dfs(matrix,i1,j,k,visited);
dfs(matrix,i-1,j,k,visited);
dfs(matrix,i,j1,k,visited);
dfs(matrix,i,j-1,k,visited);
}
public int Dfs(int [][]matrix,int k)
{
Boolean [][]visitednew Boolean[matrix.length][matrix[0].length];
for(int i0;imatrix.length;i)
{
Arrays.fill(visisted[i],false);
}
dfs(matrix,0,0);
return count;
}
bfs求解每次若满足条件则将其放入queue中去并在弹出时判断其上下左右四个方向是否可行,numBit方法与上面一样。
public int bfs(int [][]matrix,int k)
{
QueueIntegerqueueRownew Linkedlist();
QueueIntegerqueueColnew LinkedList();
queueRow.add(0);
queueCol.add(0);
int count0;
while(!queueRow.isEmpty())
{
int RowqueueRow.poll();
int ColqueueCol.poll();
visited[Row][Col]true;
count;
if(Row-10visited[Row-1][Col]false){queueRow.add(Row-1);queueCol.add(Col);}
if(Row1matrix.lengthvisited[Row1][Col]false){queueRow.add(Row1);queueCol.add(Col);}
if(Col-10visited[Row][Col-1]false){queueRow.add(Row);queueCol.add(Col-1);}
if(Col1matrix[0].lengthvisited[Row][Col1]false){queueRow.add(Row);queueCol.add(Col1);}
}
return count;
}