Redian新闻
>
chase 300+200那种收到的信coupon,换10个包子
avatar
chase 300+200那种收到的信coupon,换10个包子# Money - 海外理财
t*r
1
走迷宫的 时间复杂度是多少?谢谢 如这个解法
#include
// Maze size
#define N 4
bool solveMazeUtil(int maze[N][N], int x, int y, int sol[N][N]);
/* A utility function to print solution matrix sol[N][N] */
void printSolution(int sol[N][N])
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
printf(" %d ", sol[i][j]);
printf("n");
}
}
/* A utility function to check if x,y is valid index for N*N maze */
bool isSafe(int maze[N][N], int x, int y)
{
// if (x,y outside maze) return false
if(x >= 0 && x < N && y >= 0 && y < N && maze[x][y] == 1)
return true;
return false;
}
/* This function solves the Maze problem using Backtracking. It mainly uses
solveMazeUtil() to solve the problem. It returns false if no path is
possible,
otherwise return true and prints the path in the form of 1s. Please note
that
there may be more than one solutions, this function prints one of the
feasible
solutions.*/
bool solveMaze(int maze[N][N])
{
int sol[N][N] = { {0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0}
};
if(solveMazeUtil(maze, 0, 0, sol) == false)
{
printf("Solution doesn't exist");
return false;
}
printSolution(sol);
return true;
}
/* A recursive utility function to solve Maze problem */
bool solveMazeUtil(int maze[N][N], int x, int y, int sol[N][N])
{
// if (x,y is goal) return true
if(x == N-1 && y == N-1)
{
sol[x][y] = 1;
return true;
}
// Check if maze[x][y] is valid
if(isSafe(maze, x, y) == true)
{
// mark x,y as part of solution path
sol[x][y] = 1;
/* Move forward in x direction */
if (solveMazeUtil(maze, x+1, y, sol) == true)
return true;
/* If moving in x direction doesn't give solution then
Move down in y direction */
if (solveMazeUtil(maze, x, y+1, sol) == true)
return true;
/* If none of the above movements work then BACKTRACK:
unmark x,y as part of solution path */
sol[x][y] = 0;
return false;
}
return false;
}
// driver program to test above function
int main()
{
int maze[N][N] = { {1, 0, 0, 0},
{1, 1, 0, 1},
{0, 1, 0, 0},
{1, 1, 1, 1}
};
solveMaze(maze);
getchar();
return 0;
}
avatar
a*h
2
【 以下文字转载自 FleaMarket 讨论区 】
发信人: azimuth (子牙), 信区: FleaMarket
标 题: chase 300+200那种收到的信coupon,换10个包子
发信站: BBS 未名空间站 (Tue Jul 5 15:56:50 2016, 美东)
$300 for Chase Total Checking and set up direct deposit
$200 for new savings account, deposit a total of $15,000
Offer expires July 11, 2016.
avatar
h*e
3
O(M*N)最大吧。。
avatar
t*r
4
有人说是 o (m+n)
糊涂了

【在 h*******e 的大作中提到】
: O(M*N)最大吧。。
avatar
c*y
5
Bfs最坏应该是m*n

【在 t**r 的大作中提到】
: 有人说是 o (m+n)
: 糊涂了

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。