热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

每日一练:2月18日精选题目解析

(2022.02.18)每日一题寻找重复子树(框架思维的运用)如果你想知道以自己为根的子树是不是重复的,是否应该被加入结果列表中,你需要知道什么信息?你需要知道以下两点:1、以我为

(2022.02.18)每日一题 寻找重复子树(框架思维的运用)

如果你想知道以自己为根的子树是不是重复的,是否应该被加入结果列表中,你需要知道什么信息?

你需要知道以下两点

1、以我为根的这棵二叉树(子树)长啥样

2、以其他节点为根的子树都长啥样

这就叫知己知彼嘛,我得知道自己长啥样,还得知道别人长啥样,然后才能知道有没有人跟我重复,对不对?

好,那我们一个一个来解决,先来思考,我如何才能知道以自己为根的二叉树长啥样

要知道以自己为根的子树长啥样,得先知道我的左右子树长啥样,再加上自己,就构成了整棵子树的样子? (这就是后序遍历的框架思想)



  1. 要解决以当前节点为根的二叉树长什么样,就得序列化它的结构(做记录)



  2. 要知道以其它节点为根的二叉树长什么样,就得要把序列化二叉树的结构的结果存储起来(哈希表)

    class Solution {
    private:
    unordered_map record;
    vector res;
    public:
    vector findDuplicateSubtrees(TreeNode* root) {
    Traverse(root);
    return res;
    }
    string Traverse(TreeNode* node){
    if(node == nullptr){
    return "#";
    }
    //后序遍历 + 序列化子树结构
    string ans = Traverse(node->left)+","+Traverse(node->right)+","+ to_string(node->val);
    record[ans]++;
    if(record[ans]==2){
    res.emplace_back(node);
    }
    return ans;
    }
    };


以上总结主要来自东哥的刷题笔记以及力扣。



推荐阅读
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 本文将介绍在王者荣耀中如何通过特殊符号和第三方工具来创建超过六个字符的昵称,同时提醒玩家注意潜在的风险。 ... [详细]
  • 显示器颜色校准指南
    了解如何精确校准显示器的颜色,以确保图像和视频的色彩准确性。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文对元代诗人袁易的《高阳台·鸳鸯菊》进行详细解读,通过翻译和注释,揭示其深邃的意境与独特的艺术魅力。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 全国顶尖绘画专业大学排行榜:哪些院校最值得选择?
    对于有志于学习绘画专业的学生来说,了解国内开设该专业的高校排名及实力情况至关重要。本文将详细介绍中国绘画专业排名前十的大学,并分析各校的优势与特色。 ... [详细]
  • 如何使用滴滴出行App点外卖?详细教程与指南
    滴滴出行不仅提供打车服务,还推出了外卖业务。目前该服务仅在部分城市开放,本文将详细介绍如何通过滴滴出行App点外卖,并提供具体的操作步骤和注意事项。 ... [详细]
  • 如何在PHPCMS V9中实现多站点功能并配置独立域名与动态URL
    本文介绍如何在PHPCMS V9中创建和管理多个站点,包括配置独立域名、设置动态URL,并确保各子站能够正常运行。我们将详细讲解从新建站点到最终配置路由的每一步骤。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
  • 2023年1月15日,联想移动业务宣布了中国区高管团队的重大调整。此次变动旨在强化中国市场战略,以应对激烈的竞争环境。高级副总裁陈旭东将兼任中国区总经理,带领新团队迎战市场挑战。 ... [详细]
  • 本文详细介绍了如何正确设置和操作玻璃冰柜,以确保其达到理想的制冷效果。通过了解指示灯的工作原理及化霜周期,用户可以更好地维护冷柜的性能。 ... [详细]
  • 如何在vivo手机上启用商户识别功能
    本文详细介绍了如何在vivo手机上启用商户识别功能,帮助用户轻松完成设置。通过简单的步骤,您可以快速激活这一实用功能,提升支付和购物体验。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
author-avatar
明月思含含
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有