题解 | #矩阵中的路径#

矩阵中的路径

http://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6

class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix char字符型vector<vector<>> * @param word string字符串 * @return bool布尔型 / bool hasPath(vector<vector >& matrix, string word) { // write code here if(matrix.empty()) { if(word.length()==0) return true; else return false; } int row=matrix.size(); int rll=matrix[0].size(); int len=word.length(); if(len>rowrll) return false; //vector WORD[len+1]; /* for(int i=0;i<len;i++) WORD[i]=word[i]; //将string转为char[] WORD[len]='\0'; */ for(int i=0;i<row;i++) for(int j=0;j<rll;j++) { if(dfs(matrix,word,i,j,0,len)) return true;

        }
    return false;
    
    
}

bool dfs(vector<vector<char>>& matrix,string word,int i,int j,int index,int len)
{
    if(index==len)
        return true;
    if(i<0||i>=matrix.size()||j<0||j>=matrix[0].size())
        return false;
    if(matrix[i][j]==word[index])
    {
        char temp=matrix[i][j];
        matrix[i][j]='.';  //因为是随机回溯查找。可能会使matrix[i][j]被遍历两次,因此暂时更改
        bool res=dfs(matrix,word,i,j+1,index+1,len)||dfs(matrix,word,i+1,j,index+1,len)||dfs(matrix,word,i,j-1,index+1,len)||dfs(matrix,word,i-1,j,index+1,len);
        matrix[i][j]=temp;
        return res;
    }
    else
        return false;
}

};

全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务