当前位置: 首页 > 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;
    }
};

http://www.dtcms.com/a/116196.html

相关文章:

  • 华为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入门(一)
  • 大模型:大模型部署Ollama和Dify
  • Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化
  • 学透Spring Boot — 016. 魔术师 - Spring MVC Conversion Service 类型转换
  • SSL证书颁发机构有哪些呢
  • Mysql——DbUtils的使用
  • 二叉树——队列bfs专题
  • Docker容器中的ubuntu apt update报错 解决办法
  • 【58】编程技巧:单片机编程命名规范
  • Oracle数据库数据编程SQL<4.3 事务的补充内容(了解)>
  • 十、C++速通秘籍—多进程