当前位置: 首页 > news >正文

【力扣hot100题】(059)单词搜索

这道题给我最大的启示就是不要什么时候都用哈希表,偶尔也要用用数组……

是这样,一开始还沾沾自喜的以为知道了哈希表的自己一定可以比以前傻傻用数组的我要节省空间,结果发现哈希表不能存储pair+用编号存储会时间超限+用数组只需要7*7的空间。

最后好歹也是屈膝用数组过了。

class Solution {
public:
    bool exists[7][7];
    vector<vector<char>> board;
    string word;
    bool backtracking(int i,int row,int column){
        if(i==word.size()-1) return 1;
        exists[row][column]=1;
        if(row+1<board.size()&&exists[row+1][column]==0&&word[i+1]==board[row+1][column]&&backtracking(i+1,row+1,column)) return 1;
        if(row>0&&exists[row-1][column]==0&&word[i+1]==board[row-1][column]&&backtracking(i+1,row-1,column)) return 1;
        if(column+1<board[0].size()&&exists[row][column+1]==0&&word[i+1]==board[row][column+1]&&backtracking(i+1,row,column+1)) return 1;
        if(column>0&&exists[row][column-1]==0&&word[i+1]==board[row][column-1]&&backtracking(i+1,row,column-1)) return 1;
        exists[row][column]=0;
        return 0;
    }
    bool exist(vector<vector<char>>& board, string word) {
        this->board=board;
        this->word=word;
        memset(exists,0,sizeof(exists));
        for(int i=0;i<board.size();i++){
            for(int j=0;j<board[i].size();j++){
                if(board[i][j]==word[0]&&backtracking(0,i,j)==1) return 1;
            }
        }
        return 0;
    }
};

相关文章:

  • 华为IP(4)
  • 面试自我介绍
  • 介绍几种创意登录页(含完整源码)
  • Go语言-初学者日记(五):文件操作与 JSON 实战
  • PHP 项目搭建 ELK 日志监控体系完整指南
  • 第三方检测报告—科技成果鉴定测试
  • Ansible YAML 基础语法与关键词 的详细指南
  • 网络编程—TCP/IP模型(IP协议)
  • 若依系统弹窗父子页面传参数
  • 45.跳跃游戏 II
  • 网络编程—TCP/IP模型(数据链路层了解与知识补充)
  • DApp实战篇:前端技术栈一览
  • [ Redis ] | 初识Redis
  • 【数据结构】图的存储
  • ES使用聚合aggregations实战(自用:2025.04.07更新)
  • 铰链损失函数 Hinge Loss和Keras 实现
  • leetcode-代码随想录-哈希表-赎金信
  • Qt中的多种输出方式,信号与槽的基本使用
  • 场内期权和场外期权开户有什么区别?
  • 【学习笔记】Gymnasium入门(一)
  • 群辉服务器做网站/百度公司招聘2022年最新招聘
  • 有哪些企业可以做招聘的网站有哪些方面/软文推广经典案例
  • 官方网站下载游戏/网站优化快速排名软件
  • 网站除了做流量还需要什么/专业网站优化外包
  • 成都网站建设优秀公司/百度seo怎么把关键词优化上去
  • 建德建设局官方网站/外链工具xg