为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第13天 算法设计思想之“分而治之”

标签:
JavaScript

课程名称:JavaScript版数据结构与算法
课程章节:第12章 算法设计思想之“分而治之”
主讲老师:lewis

课程内容:

今天学习的内容包括:
12-5 LeetCode:101. 对称二叉树——使用分而治之进行解决。
12-6 分而治之-章节总结——分而治之应用在那些算法场景下。
12-7 【勤于思考,夯实学习成果】阶段思考题——完成对应思考题。

课程收获:

101. 对称二叉树

解题思路
  • 转化为:左右子树是否镜像。
  • 分解为:树1的左子树和树2的右子树是否镜像,树1的右子树和树2的左子树是否镜像。
  • 符合“分、解、合”特性,考虑选择分而治之。
解题步骤
  • 分:获取两个树的左子树和右子树。
  • 解:递归地判断树1的左子树和树2的右子树是否镜像,树1的右子树和树2的左子树是否镜像。
  • 合:如果上述都成立,且根节点值也相同,两个树就镜像。
性能分析
  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。

章节总结

分而治之是什么
  • 分而治之是算法设计中的一种方法。
  • 它将一个问题分成多个和原问题相似的小问题,递归解决小问题,再将结果合并以解决原来的问题。
应用场景
  • 归并排序。
  • 快速排序。
  • 二分搜索。
  • 翻转二叉树。

今天 通过分而治之 理念 学习了 对称二叉树的判断,原来用分而治之理念将问题分成若干个小问题进行处理可以这么简单的解决原有问题,算法有着无穷的魅力。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

​​https://img1.sycdn.imooc.com//6325ce5b0001e17125481352.jpg

https://img1.sycdn.imooc.com//6325ced40001a46e25161335.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消