leetcode 756. Pyramid Transition Matrix | 756. 金字塔转换矩阵(BFS)
题目
https://leetcode.com/problems/pyramid-transition-matrix/
题解
BFS,把 pattern 用 map 存起来,然后 bfs 从下向上一层一层尝试每个 pattern 是否可行。注意状态的转移。
class Solution {int N;Map<String, List<Character>> map;public boolean pyramidTransition(String bottom, List<String> allowed) {N = bottom.length();map = new HashMap<>();for (String s : allowed) {String k = s.substring(0, 2);List<Character> list = map.getOrDefault(k, new ArrayList<>());list.add(s.charAt(2));map.put(k, list);}char[][] arr = new char[N][N];for (int i = 0; i < N; i++) {arr[N - 1][i] = bottom.charAt(i);}return bfs(arr, N - 1, 0);}public boolean bfs(char[][] arr, int i, int j) {if (i == 0) return true;if (j == i) return bfs(arr, i - 1, 0);List<Character> list = map.get("" + arr[i][j] + arr[i][j + 1]);if (list == null) return false;for (Character c : list) {arr[i - 1][j] = c;if (bfs(arr, i, j + 1)) return true;}return false;}
}
leetcode 756. Pyramid Transition Matrix | 756. 金字塔转换矩阵(BFS)相关推荐
- Java实现 LeetCode 756 金字塔转换矩阵(DFS)
756. 金字塔转换矩阵 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C" ...
- LeetCode 756. 金字塔转换矩阵(回溯)
文章目录 1. 题目 2. 解题 1. 题目 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,&q ...
- leetcode算法题--Pyramid Transition Matrix
原题链接:https://leetcode.com/problems/pyramid-transition-matrix/ class Solution {public:vector<char& ...
- 756 金字塔转换矩阵
题目描述: 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C"为顶层方块, ...
- java 字母金字塔_LeetCode756:金字塔转换矩阵(JAVA题解)
题目描述 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C"为顶层方块,方 ...
- leetcode 519. Random Flip Matrix | 519. 随机翻转矩阵(洗牌算法Fisher–Yates shuffle)
题目 https://leetcode.com/problems/random-flip-matrix/ 题解 看了答案: 洗牌算法 Fisher–Yates shuffle Fisher–Yates ...
- 【数据结构与算法】之深入解析“金字塔转换矩阵”的求解思路与算法示例
一.题目要求 你正在把积木堆成金字塔,每个块都有一个颜色,用一个字母表示,每一行的块比它下面的行少一个块,并且居中. 为了使金字塔美观,只有特定的三角形图案是允许的.一个三角形的图案由两个块和叠在上面 ...
- 状态转移矩阵(status transition matrix )
转移概率矩阵(又叫跃迁矩阵,英文名:transition matrix)是俄国数学家马尔科夫提出的,他在20世纪初发现:一个系统的某些因素在转移中,第n次结果只受第n-1的结果影响,即只与当前所处状态 ...
- LeetCode 59 _ Sprial Matrix II 旋转矩阵2
Description: Given a positive integer n, generate a square matrix filled with elements from 1 to n2 ...
最新文章
- 万字长文!Jeff Dean亲笔盘点谷歌AI 2019:纵横16大方向,汇集重要开源算法(附链接)...
- 我的2017与2018
- 浏览器打不开计算机二级网页,电脑的的所有浏览器都打不开二级网页 该怎么处理 网上好多办法都尝试了 没用 谁能帮帮我 谢谢...
- Linux GDB常用命令一栏
- cocos2d-x游戏实例(21)-纵版射击游戏(8)
- 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
- Js实现异步刷新(原创)
- SpringBoot使用netty
- 微型计算机机箱内的硬件,微型计算机系统硬件组成及外设认识
- indesign用于产品排班_怎样利用Indesign来进行高效的排版ID:30077776
- 分贝相关概念及转换:dB、dBSPL、dBm、dBu、dBV、dBFS
- itest英语考试bug_ITEST 使用常见问题之教师篇
- html怎么设置p元素居中,CSS 如何使p层水平居中
- php收银系统如何连接pos机,收银pos机怎么连接?
- Office2016打开文件提示“文件已损坏”,WPS打开却正常的解决办法
- 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
- python制作成绩分析系统_python实现学生成绩测评系统
- CVE-2012-4792 漏洞利用学习笔记
- 关于cv2.cvtColor函数的一些小小的思考
- 文章展示从数据库到前端页面实现部分展示
热门文章
- 美团杯2020 - 平行四边形(原根)
- mysql timezone utc_在与mysql的配置当中一定要注意的一点是设置serverTimezone=UTC
- 使用pagination分页插件实现Ajax动态分页
- deque,list,queue,priority_queue
- 九省联考2018总结
- CreateProcess启动游戏注入DLL
- 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
- Nginx 反向代理、动静分离、负载均衡及配置实例
- C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组
- 设计模式:组合模式(Composite)