码迷,mamicode.com
首页 > 其他好文 > 详细

2017.7.13

时间:2017-08-03 01:09:47      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:null   ptr   ret   pat   offer   自己   off   hasone   int   

自己写的剑指offer步数题

bool hasOneCore(const char *matrix, int row, int col, int rows, int cols, const char *str, int &index, bool *visited) {
if(str[index] == ‘\0‘)
return true;
bool hasPath = false;
if(str[index] == matrix[col * row + col] && row >= 0 && row < rows && col >= 0 && col < cols && !visited[cols * rows + col]) {
index++;
visited[cols * row + col] = true;
hasPath = hasOneCore(matrix, row - 1, col, rows, cols, str, index, visited) ||
hasOneCore(matrix, row + 1, col, rows, cols, str, index, visited) || hasOneCore(matrix, row, col - 1, rows, cols, str, index, visited)
|| hasOneCore(matrix, row, col + 1, rows, cols, str, index, visited);
}
if(!hasPath) {
--index;
visited[row * cols + col] = false;
}
return hasPath;
};
bool hasPath(char *matrix, int rows, int cols, char *str) {
// if(matrix == nullptr || rows < 1 || cols < 1 || str == nullptr)
// return false;
int index = 0;
bool *visited = new bool[cols * rows];
memset(visited, 0, rows * cols);
for(int row = 0; row < rows; row++) {
for(int col = 0; col < cols; col++)
if(hasOneCore(matrix, row, col, rows, cols, str, index, visited)) {
return true;
}
}
delete[] visited;
return false;
};

bug太多改了很久不够系统。

2017.7.13

标签:null   ptr   ret   pat   offer   自己   off   hasone   int   

原文地址:http://www.cnblogs.com/bloomingFlower/p/7277424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!