题解 | #矩阵中的路径#

矩阵中的路径

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;
}

};

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-09 12:00
点赞 评论 收藏
分享
07-11 18:47
已编辑
门头沟学院 后端
在看数据的孤勇者很想...:如果你是在校硕士,六段大厂实习一眼假,假设一段实习两个月,硕一暑假,硕一寒假,大四暑假,大四寒假,大三寒假,大三暑假,哥们,你怎么卷吗,寒假基本两个月在企业实习不现实,所以你可能是日常实习,但是你不可能每段日常实习都是两个月吧,他们日常实习都是三个月起步这样,所以你往前推一下,一段日常实习,就三个月,敢情你大学生课都不上,全在实习吗?你自己问问自己,六段大厂实习,一点没学到,自己说出来会不会笑呀,不管学历,但凡有一段大厂实习都很牛逼了
投递米哈游等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务