在矩阵中搜索单词

单词搜索

http://www.nowcoder.com/questionTerminal/14bcbcb7ae3c40c9bdbc5a0861361c29

DFS(注意dfs函数中需要通过或运算进行剪枝,否则会超时):

//
// Created by jt on 2020/9/24.
//
#include <vector>
#include <string>
using namespace std;

class Solution {
public:
    bool exist(vector<vector<char> > &board, string word) {
        if (board.size() < 1) return false;
        vector<vector<int> > visited(board.size(), vector<int>(board[0].size(), 0));
        for (int i = 0; i < board.size(); ++i) {
            for (int j = 0; j < board[0].size(); ++j) {
                if (dfs(board, word, 0, i, j, visited)) return true;
            }
        }
        return false;
    }

    bool dfs(vector<vector<char> > &board, string &word, int pos, int x, int y,
            vector<vector<int> > &visited) {
        if (pos == word.size()) return true;
        if (x < 0 || x > board.size()-1 || y < 0 || y > board[0].size()-1) return false;
        if (visited[x][y]) return false;
        if (board[x][y] != word[pos]) return false;
        visited[x][y] = 1;
        // 通过合并或运算剪枝
        bool a = dfs(board, word, pos+1, x-1, y, visited) ||
                 dfs(board, word, pos+1, x+1, y, visited) ||
                 dfs(board, word, pos+1, x, y-1, visited) ||
                 dfs(board, word, pos+1, x, y+1, visited);
        visited[x][y] = 0;
        return a;
    }
};

刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

09-01 21:40
已编辑
同济大学 Java
点赞 评论 收藏
分享
09-16 14:43
已编辑
江娱互动_研发_客户端开发
背景&nbsp;双一流本硕&nbsp;双非大圆满&nbsp;只找游戏开发相关的岗位。&nbsp;8&nbsp;月初开始秋招到现在&nbsp;投了四五十家吧,&nbsp;目前两&nbsp;offer,&nbsp;不打算继续投了,把剩下的流程走完就开始沉淀了。目前两&nbsp;offer&nbsp;一个是网易互娱测开&nbsp;base&nbsp;广州,一个是江娱互动客户端开发&nbsp;base&nbsp;北京。应该确定网易这个了,说实话北京这个我挺想去的,这家的产品和工作氛围我了解了也不错,是那种踏实做事的,可惜我是广东人。网易的测开是调剂的二志愿,看了下有内部转岗机会,所以打算后面找个时间提前实习,沉淀下再做一个&nbsp;demo&nbsp;作品,写一些&nbsp;shader,增强下图形学渲染的能力,再学点编辑器开发。看到时候内部转岗或者春招继续投客户端开发这样。后面还能再动摇的话应该就灵犀或者腾子了吧(假如这两家确认的是客户端开发岗的话)。-----------------------补下timeline网易互娱&nbsp;测开&nbsp;8.2笔试&nbsp;&nbsp;8.21&nbsp;技术面&nbsp;&nbsp;8.29&nbsp;leader&amp;HRBP面(终面)&nbsp;9.8&nbsp;录用审核(之前一直显示面试中)9.14&nbsp;oc江娱互动&nbsp;客户端开发&nbsp;8.29主程面&nbsp;9.3&nbsp;制作人面&nbsp;9.5&nbsp;BOSS面&nbsp;9.11&nbsp;口头OC&nbsp;9.15&nbsp;正式offer后面考虑了一下&nbsp;&nbsp;感觉还是能走开发就开发吧,测开不太感兴趣,要内部活水转岗还要满1年才能申请。。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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