news 2026/4/17 17:21:08

leetcode 773. Sliding Puzzle 滑动谜题 耗时100%

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 773. Sliding Puzzle 滑动谜题 耗时100%

Problem: 773. Sliding Puzzle 滑动谜题

解题过程

耗时100%,用深度优先搜索超时了,而且陷入了无限循环,不太好去重的,不知道怎么做了,看了官方的题解,大概理解了其中的意思,广度优先搜索就好多了,去重方便的,状态用数字表示即可,而且步长是相等的,只要找到题目的状态,就是最短的步长,不需要考虑其他的,广度优先搜索需要拿到下一步的状态

int key = board[0][0] * 100000 + board[0][1] * 10000 + board[0][2] * 1000 + board[1][0] * 100 + board[1][1] * 10 + board[1][2] * 1;

Code

class Solution { public: int dir[4][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} }; int mi = INT_MAX; void dfs(vector<vector<int>>& board, int x, int y, int cnt, unordered_map<int, bool>& ump) { if(cnt > mi) return; int key = board[0][0] * 100000 + board[0][1] * 10000 + board[0][2] * 1000 + board[1][0] * 100 + board[1][1] * 10 + board[1][2] * 1; if(ump[key]==true) return; if(key==123450) { mi = min(mi, cnt); return; } int tmp, xx, yy; ump[key] = true; for(int i = 0; i < 4; i++) { xx = x + dir[i][0]; yy = y + dir[i][1]; if(xx < 0 || yy < 0 || xx >= 2 || yy >= 3) continue; tmp = board[xx][yy]; board[xx][yy] = 0; board[x][y] = tmp; dfs(board, xx, yy, cnt + 1, ump); board[xx][yy] = tmp; board[x][y] = 0; } } int getKey(vector<vector<int>>& board) { int key = board[0][0] * 100000 + board[0][1] * 10000 + board[0][2] * 1000 + board[1][0] * 100 + board[1][1] * 10 + board[1][2] * 1; return key; } int slidingPuzzle(vector<vector<int>>& board) { int i, j, ii = -1, jj = -1, tmp; for(j = 0; j < 3; j++) { if(board[0][j]==0) { ii = 0; jj = j; } } for(j = 2; j >= 0; j--) { if(board[1][j]==0) { ii = 1; jj = j; } } if(getKey(board)==123450) return 0; queue<pair<int, int>> qe; qe.push({getKey(board), 0}); pair<int, int> pr; vector<vector<int>> cpboard = board; int aaa, x, y, xx, yy, kkk; unordered_map<int, bool> ump; while( !qe.empty() ) { pr = qe.front(); cpboard[0][0] = pr.first/100000; aaa = pr.first%100000; cpboard[0][1] = aaa/10000; aaa = aaa%10000; cpboard[0][2] = aaa/1000; aaa = aaa%1000; cpboard[1][0] = aaa/100; aaa = aaa%100; cpboard[1][1] = aaa/10; aaa = aaa%10; cpboard[1][2] = aaa; for(int i = 0; i < 2; i++) { for(int j = 0; j < 3; j++) { if(cpboard[i][j] == 0) { x = i; y = j; break; } } } qe.pop(); if(ump.count(pr.first)!=0) continue; ump[pr.first] = true; for(int i = 0; i < 4; i++) { xx = x + dir[i][0]; yy = y + dir[i][1]; if(xx < 0 || yy < 0 || xx >= 2 || yy >= 3) continue; aaa = cpboard[xx][yy]; cpboard[x][y] = cpboard[xx][yy]; cpboard[xx][yy] = 0; kkk = getKey(cpboard); if(kkk==123450) return pr.second + 1; qe.push({kkk, pr.second + 1}); cpboard[x][y] = 0; cpboard[xx][yy] = aaa; } } // unordered_map<int, bool> ump; // unordered_map<int, bool> umpump; // dfs(board, ii, jj, 0, ump); // if(mi == INT_MAX) return -1; return -1; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 0:21:40

学长亲荐8个AI论文工具,研究生轻松搞定论文格式规范!

学长亲荐8个AI论文工具&#xff0c;研究生轻松搞定论文格式规范&#xff01; AI 工具如何成为研究生论文写作的得力助手 在当今学术研究日益数字化的背景下&#xff0c;AI 工具正逐步成为研究生论文写作的重要辅助。从初稿生成到格式规范&#xff0c;再到降重处理&#xff0c;这…

作者头像 李华
网站建设 2026/3/27 17:20:58

2025专科生必看!9个AI论文工具测评:开题报告与文献综述神器

2025专科生必看&#xff01;9个AI论文工具测评&#xff1a;开题报告与文献综述神器 2025年专科生论文写作新选择&#xff1a;AI工具测评全解析 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的…

作者头像 李华
网站建设 2026/4/18 3:11:59

AI大模型精准医疗全攻略:从技术架构到应用场景的完整指南

本文详细介绍AI智能体在精准医疗领域的多层级技术架构与应用&#xff0c;涵盖数据整合、分析推理、临床决策支持等功能。系统通过机器学习和NLP技术&#xff0c;在肿瘤学、心脏病学等专科提供个性化诊断与治疗方案。文章探讨了实施验证、伦理监管、经济影响及未来发展方向&…

作者头像 李华
网站建设 2026/4/18 1:53:13

学长亲荐10个AI论文工具,MBA论文写作必备!

学长亲荐10个AI论文工具&#xff0c;MBA论文写作必备&#xff01; AI 工具助力论文写作&#xff0c;高效与精准并存 在当今学术研究日益复杂的背景下&#xff0c;MBA 学生在撰写论文时常常面临时间紧张、内容深度不足以及格式规范不熟悉等多重挑战。而 AI 工具的出现&#xff0…

作者头像 李华
网站建设 2026/4/18 9:21:36

手把手教你使用 Faster-Whisper 实时语音输入转文本,本地部署教程

文章目录前言一、安装环境二、使用步骤1.下载模型2.实时录音转文本脚本总结前言 要想实现像豆包、微信等一样的语音输入功能&#xff0c;通常有两种主流方案&#xff1a;云端 API&#xff08;轻量、准确度极高&#xff09;和 本地模型&#xff08;免费、隐私、无需联网&#x…

作者头像 李华
网站建设 2026/4/18 9:21:28

2025最新!10个AI论文软件测评:研究生写论文痛点全解析

2025最新&#xff01;10个AI论文软件测评&#xff1a;研究生写论文痛点全解析 2025年AI论文软件测评&#xff1a;解决研究生写作难题 随着人工智能技术的不断进步&#xff0c;越来越多的学术研究者开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上种类繁多的AI论文…

作者头像 李华