题目

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)相关推荐

  1. Java实现 LeetCode 756 金字塔转换矩阵(DFS)

    756. 金字塔转换矩阵 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C" ...

  2. LeetCode 756. 金字塔转换矩阵(回溯)

    文章目录 1. 题目 2. 解题 1. 题目 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,&q ...

  3. leetcode算法题--Pyramid Transition Matrix

    原题链接:https://leetcode.com/problems/pyramid-transition-matrix/ class Solution {public:vector<char& ...

  4. 756 金字塔转换矩阵

    题目描述: 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C"为顶层方块, ...

  5. java 字母金字塔_LeetCode756:金字塔转换矩阵(JAVA题解)

    题目描述 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C"为顶层方块,方 ...

  6. leetcode 519. Random Flip Matrix | 519. 随机翻转矩阵(洗牌算法Fisher–Yates shuffle)

    题目 https://leetcode.com/problems/random-flip-matrix/ 题解 看了答案: 洗牌算法 Fisher–Yates shuffle Fisher–Yates ...

  7. 【数据结构与算法】之深入解析“金字塔转换矩阵”的求解思路与算法示例

    一.题目要求 你正在把积木堆成金字塔,每个块都有一个颜色,用一个字母表示,每一行的块比它下面的行少一个块,并且居中. 为了使金字塔美观,只有特定的三角形图案是允许的.一个三角形的图案由两个块和叠在上面 ...

  8. 状态转移矩阵(status transition matrix )

    转移概率矩阵(又叫跃迁矩阵,英文名:transition matrix)是俄国数学家马尔科夫提出的,他在20世纪初发现:一个系统的某些因素在转移中,第n次结果只受第n-1的结果影响,即只与当前所处状态 ...

  9. LeetCode 59 _ Sprial Matrix II 旋转矩阵2

    Description: Given a positive integer n, generate a square matrix filled with elements from 1 to n2  ...

最新文章

  1. 万字长文!Jeff Dean亲笔盘点谷歌AI 2019:纵横16大方向,汇集重要开源算法(附链接)...
  2. 我的2017与2018
  3. 浏览器打不开计算机二级网页,电脑的的所有浏览器都打不开二级网页 该怎么处理 网上好多办法都尝试了 没用 谁能帮帮我 谢谢...
  4. Linux GDB常用命令一栏
  5. cocos2d-x游戏实例(21)-纵版射击游戏(8)
  6. 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
  7. Js实现异步刷新(原创)
  8. SpringBoot使用netty
  9. 微型计算机机箱内的硬件,微型计算机系统硬件组成及外设认识
  10. indesign用于产品排班_怎样利用Indesign来进行高效的排版ID:30077776
  11. 分贝相关概念及转换:dB、dBSPL、dBm、dBu、dBV、dBFS
  12. itest英语考试bug_ITEST 使用常见问题之教师篇
  13. html怎么设置p元素居中,CSS 如何使p层水平居中
  14. php收银系统如何连接pos机,收银pos机怎么连接?
  15. Office2016打开文件提示“文件已损坏”,WPS打开却正常的解决办法
  16. 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
  17. python制作成绩分析系统_python实现学生成绩测评系统
  18. CVE-2012-4792 漏洞利用学习笔记
  19. 关于cv2.cvtColor函数的一些小小的思考
  20. 文章展示从数据库到前端页面实现部分展示

热门文章

  1. 美团杯2020 - 平行四边形(原根)
  2. mysql timezone utc_在与mysql的配置当中一定要注意的一点是设置serverTimezone=UTC
  3. 使用pagination分页插件实现Ajax动态分页
  4. deque,list,queue,priority_queue
  5. 九省联考2018总结
  6. CreateProcess启动游戏注入DLL
  7. 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
  8. Nginx 反向代理、动静分离、负载均衡及配置实例
  9. C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组
  10. 设计模式:组合模式(Composite)