文章目录

  • 1. 题目
  • 2. 解题

1. 题目

对于一棵深度小于 5 的树,可以用一组三位十进制整数来表示。

对于每个整数:

  • 百位上的数字表示这个节点的深度 D,1 <= D <= 4。
  • 十位上的数字表示这个节点在当前层所在的位置 P, 1 <= P <= 8。位置编号与一棵满二叉树的位置编号相同。
  • 个位上的数字表示这个节点的权值 V,0 <= V <= 9。

给定一个包含三位整数的升序数组,表示一棵深度小于 5 的二叉树,
请你返回从根到所有叶子结点的路径之和。

样例 1:
输入: [113, 215, 221]
输出: 12
解释:
这棵树形状如下:3/ \5   1
路径和 = (3 + 5) + (3 + 1) = 12.样例 2:
输入: [113, 221]
输出: 4
解释:
这棵树形状如下: 3\1
路径和 = (3 + 1) = 4.

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum-iv
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • id=2d−1+p−1id = 2^{d-1}+p-1id=2d−1+p−1,将 id 和 val 存入哈希 map
  • dfs 遍历
class Solution {unordered_map<int,int> m;//id,valint sum = 0;
public:int pathSum(vector<int>& nums) {if(nums.empty()) return 0;for(int i = 0; i < nums.size(); ++i){int pos = (1<<(nums[i]/100 -1)) + nums[i]/10%10 -1;m[pos] = nums[i]%10;}dfs(1, 0);//从root编号1,s 为和0开始dfsreturn sum;}void dfs(int p, int s){if(!m.count(p))return;s += m[p];bool l = m.count(2*p), r = m.count(2*p+1);if(!l && !r){sum += s;return;}dfs(2*p, s);dfs(2*p+1, s);}
};

4 ms 10.2 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 666. 路径和 IV(树的遍历)相关推荐

  1. LeetCode 589. N-ary Tree Preorder Traversal-多子节点树前序遍历--递归,迭代--反向压栈--C++解法

    LeetCode 589. N-ary Tree Preorder Traversal-多子节点树前序遍历–递归,迭代–反向压栈–C++解法 LeetCode题解专栏:LeetCode题解 LeetC ...

  2. LeetCode总结 -- 树的遍历篇

    遍历树的数据结构中最常见的操作. 能够说大部分关于树的题目都是环绕遍历进行变体来解决的. 一般来说面试中遇到树的题目是用递归来解决的, 只是假设直接考察遍历. 那么一般递归的解法就过于简单了. 面试官 ...

  3. 【每日一题】Leetcode 刷题 二叉树-树的遍历 介绍

    二叉树-树的遍历 前序遍历 (根 左 右) 中序遍历 (左 根 右) 后序遍历 (左 右 根) 代码实现 前序遍历 中序遍历 后序遍历 完整代码 前序遍历 (根 左 右) 遍历顺序分别为: F B A ...

  4. 分门别类刷leetcode——高级数据结构(字典树,前缀树,trie树,并查集,线段树)

    目录 Trie树(字典树.前缀树)的基础知识 字典树的节点表示 字典树构造的例子 字典树的前序遍历 获取字典树中全部单词 字典树的整体功能 字典树的插入操作 字典树的搜索操作 字典树的前缀查询 字典树 ...

  5. mysql 遍历_MySQL 实现树的遍历详解及简单实现示例

    MySQL 实现树的遍历 经常在一个表中有父子关系的两个字段,比如empno与manager,这种结构中需要用到树的遍历.在Oracle 中可以使用connect by简单解决问题,但MySQL 5. ...

  6. leetcode 105. 从前序与中序遍历序列构造二叉树 c语言递归解法

    如题: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3 ...

  7. 【数据结构-树】1.树与森林(树的遍历、树的存储方法、并查集的实现)

    树的定义 树是一种数据结构,它是由 n(n>=1)n(n>=1)n(n>=1) 个有限结点组成一个具有层次关系的集合.把它叫做 "树" 是因为它看起来像一棵倒挂的 ...

  8. Search For Mafuyu dfs,树的遍历,期望(济南)

    题意 : 给定一棵n个点的树,A在1号点,B的位置在2-n中均匀随机,A不知道B的位置,现在A要去找B,每秒可以走到一个相邻点,求在最优策略(optimaloptimaloptimal strateg ...

  9. postgresql 遍历参数_PostgreSQL 对简单树的遍历

    昨天我用MysqL来实现了ORACLE的递归语句CONNECT BY, 看起来稍复杂些.今天来看看POSTGREsql如何实现ORACLE的CONNECT BY. 还是用昨天同样的表以及数据.POST ...

最新文章

  1. CentOS 7 修改时区例如上海时区
  2. python time localtimeq获取准确时间_Python时间模块datetime、time、calendar的使用方法
  3. QT Creater/VS2013的使用(快捷键,调试等)
  4. 从自己实现Ruby单例模式揭秘Ruby模块内幕
  5. react-router 4.0 学习笔记
  6. 比对数组指定列php,指定列的数组
  7. last-child 选取不到指定元素,失去效果
  8. tkMessageBox only show one window
  9. 微分方程的数值解法与程序实现 pdf_数值计算方法·第三部分
  10. RS纠删码性能分析实战
  11. 泛微为芯片行业搭建数字化平台:研发、生产、销售、文档一体管理
  12. java省市区树_ztree实现中国省市区树形
  13. 最新研究发现:另一半学历越高,你的身体可能就越健康
  14. Kafka【问题 02】KafkaTemplate 报错 Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected 问题解决
  15. Cubby提供Dropbox 2倍推荐存储空间 各大云储存容量与价格PK
  16. 连载 | Android之Camera1实现相机开发
  17. 界面控件DevExpress WinForms皮肤编辑器的这个补丁,你了解了吗?
  18. Linux信号(signal)
  19. pytorch上分之路——视频补全算法(onion peel network)
  20. 轻量级姿态估计技巧综述

热门文章

  1. vue 鼠标点击事件_VBA代码解决方案第115讲:点击鼠标实现精准控制触发事件的VBA代码第二方案...
  2. 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?
  3. rs232读取智能电表_三相电表怎么看度数 怎么计算总电量
  4. VMware Ubuntu 全屏问题解决
  5. 内核中架构相关代码简介
  6. 回旋矩形C语言,C语言回旋函数解释下,该如何处理
  7. 关于处理百万级大批量数据的mysql运行几个重要点
  8. 看了新闻,思科研发中心 没有成都的。。。
  9. oracle table 函数使用
  10. InterDev 调试错误信息: Unable to set server into correct debugging state automatically....的解决办法...