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

每日一题 LCR 109. 打开转盘锁

LCR 109. 打开转盘锁

首先尝试深度优先,但是效果不行。还得是广度优先。


class Solution {
public:
    int openLock(vector<string>& deadends, string target) {
        unordered_set<string> st; 
        for(auto s : deadends){
            st.insert(s);
        }

        if(st.find("0000") != st.end() ){
            return -1;
        }

        unordered_set<string> visited;
        queue<pair<string,int>> que;
        que.push({"0000",0});


        while(!que.empty()){
            auto t = que.front();
            que.pop();
            string stemp = t.first;
            int    step = t.second;
            if(stemp == target){
                return step;
            }
            for(int i=0;i<4;++i){
                auto partTemp = getNext(stemp,i);
                string nx0 = partTemp.first;
                string nx1 = partTemp.second;

                if(visited.find(nx0) == visited.end() && st.find(nx0) == st.end()){
                    que.push({nx0,step+1});
                    visited.insert(nx0);
                }
                if(visited.find(nx1) == visited.end() && st.find(nx1) == st.end()){
                    que.push({nx1,step+1});
                    visited.insert(nx1);
                }
            }
        }
        return -1;
    }

    pair<string,string> getNext(string s,int idx){
        string nx0 = s;
        string nx1 = s;
        nx0[idx] = nx0[idx] != '9' ? nx0[idx] + 1 : '0';
        nx1[idx] = nx1[idx] != '0' ? nx1[idx] - 1 : '9';
        return {nx0,nx1}; 
    }
};

http://www.kler.cn/a/412469.html

相关文章:

  • 跟李笑来学美式俚语(Most Common American Idioms): Part 34
  • C#(14)七大原则
  • 路由传参、搜索、多选框勾选、新增/编辑表单复用
  • js中this的指向问题
  • 大数据面试SQL题-笔记02【查询、连接、聚合函数】
  • Java与C#
  • 【系统架构设计师】高分论文:论软件架构的生命周期
  • QT6学习第五天 第一个QT Quick程序
  • Web登录页面设计
  • 复合查询和内外连接
  • opengl 三角形
  • 【VIM编辑器】vim简单使用方法
  • 贪心-哈夫曼树——acwing
  • 【智能制造-45】汽车SE分析
  • TCP三次握手与四次挥手(TCP重传机制,2MSL)超详细!!!计算机网络
  • Linux环境下Ollama安装报错: Error: xxx: permission denied
  • Python数据分析(OpenCV)
  • DAMODEL丹摩 | 关于我部署与使用FLUX.1+ComfyUI生成了一位三只手的jk美少女这回事
  • 11月26日星期二今日早报简报微语报早读
  • 计算机网络之应用层协议HTTP
  • 微信小程序罗盘抖动问题
  • “蜀道山”高校联合公益赛 Web (部分)
  • 11.27作业
  • UE5.5:MetaHuman语音转口型
  • 前端JavaScript(一)---基本介绍
  • 虚拟地址空间与物理内存(Linux系统)