长安区建设局官网站站网站备案 域名备案

pingmian/2025/10/17 1:22:42/文章来源:
长安区建设局官网站站,网站备案 域名备案,建立门派,桂林网络设计Python算法题集_翻转二叉树 题226#xff1a;翻转二叉树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【DFS递归】2) 改进版一【BFS迭代#xff0c;节点循环】3) 改进版二【BFS迭代#xff0c;列表循环】 4. 最优算法 本文为Python算法题集… Python算法题集_翻转二叉树 题226翻转二叉树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【DFS递归】2) 改进版一【BFS迭代节点循环】3) 改进版二【BFS迭代列表循环】 4. 最优算法 本文为Python算法题集之一的代码示例 题226翻转二叉树 1. 示例说明 示例 1 输入root [4,2,7,1,3,6,9] 输出[4,7,2,9,6,3,1]示例 2 输入root [2,1,3] 输出[2,3,1]示例 3 输入root [] 输出[]提示 树中节点数目范围在 [0, 100] 内-100 Node.val 100 2. 题目解析 - 题意分解 本题为二叉树的翻转基本的设计思路是深度优先算法【DFSDepth-First Search】、广度有限算法【BFSBreadth-First Search】 - 优化思路 通常优化减少循环层次 通常优化增加分支减少计算集 通常优化采用内置算法来提升计算速度 分析题目特点分析最优解 可以考虑采用迭代法改写递归函数提高性能 - 测量工具 本地化测试说明LeetCode网站测试运行时数据波动很大因此需要本地化测试解决这个问题CheckFuncPerf本地化函数用时和内存占用测试模块已上传到CSDN地址Python算法题集_检测函数用时和内存占用的模块本题本地化超时测试用例自己生成详见【最优算法章节】 3. 代码展开 1) 标准求解【DFS递归】 采用深度优先算法标准递归实现 马马虎虎超过66% import CheckFuncPerf as cfpclass Solution:def invertTree_base(self, root):if not root:return Noneroot.left, root.right root.right, root.leftself.invertTree_base(root.left)self.invertTree_base(root.right)return rootaroot generate_binary_tree(ilen) aSolution Solution() result cfp.getTimeMemoryStr(Solution.invertTree_base, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val))# 运行结果 函数 invertTree_base 的运行时间为 600.12 ms内存使用量为 4.00 KB 执行结果 712) 改进版一【BFS迭代节点循环】 通过堆栈结构的迭代算法来改写递归算法单次循环一个节点 性能良好超过82% import CheckFuncPerf as cfpclass Solution:def invertTree_ext1(self, root):if not root:return Nonestacktree [root]while stacktree:tmpnode stacktree.pop()tmpnode.left, tmpnode.right tmpnode.right, tmpnode.leftif tmpnode.right:stacktree.append(tmpnode.right)if tmpnode.left:stacktree.append(tmpnode.left)return rootaroot generate_binary_tree(ilen) aSolution Solution() result cfp.getTimeMemoryStr(Solution.invertTree_ext1, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val))# 运行结果 函数 invertTree_ext1 的运行时间为 546.13 ms内存使用量为 0.00 KB 执行结果 73) 改进版二【BFS迭代列表循环】 通过队列结构的迭代算法来改写递归算法每次循环一个批次减少了部分循环判断计算 勉强通关超过19% import CheckFuncPerf as cfpclass Solution:def invertTree_ext2(self, root):if not root:return NonequeueTree [root]while queueTree:for iIdx in range(len(queueTree)):tmpnode queueTree.pop()tmpnode.left, tmpnode.right tmpnode.right, tmpnode.leftif tmpnode.left:queueTree.append(tmpnode.left)if tmpnode.right:queueTree.append(tmpnode.right)return rootaroot generate_binary_tree(ilen) aSolution Solution() result cfp.getTimeMemoryStr(Solution.invertTree_ext2, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val))# 运行结果 函数 invertTree_ext2 的运行时间为 471.11 ms内存使用量为 0.00 KB 执行结果 214. 最优算法 根据本地日志分析最优算法为第3种方式【BFS迭代列表循环】inorderTraversal_ext2 import random ilen 1000000 def generate_binary_tree(node_count):if node_count 0:return Noneroot TreeNode(random.randint(1, 100))left generate_binary_tree(node_count // 2)right generate_binary_tree(node_count // 2)root.left leftroot.right rightreturn root aroot generate_binary_tree(ilen) aSolution Solution() result cfp.getTimeMemoryStr(Solution.invertTree_base, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val)) aroot generate_binary_tree(ilen) result cfp.getTimeMemoryStr(Solution.invertTree_ext1, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val)) aroot generate_binary_tree(ilen) result cfp.getTimeMemoryStr(Solution.invertTree_ext2, aSolution, aroot) print(result[msg], 执行结果 {}.format(result[result].val))# 算法本地速度实测比较 函数 invertTree_base 的运行时间为 600.12 ms内存使用量为 4.00 KB 执行结果 71 函数 invertTree_ext1 的运行时间为 546.13 ms内存使用量为 0.00 KB 执行结果 7 函数 invertTree_ext2 的运行时间为 471.11 ms内存使用量为 0.00 KB 执行结果 21一日练一日功一日不练十日空 may the odds be ever in your favor ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

澄海网站建设公司建设摩托车官网的网站首页

题干: 描述 N级阶梯,人可以一步走一级,也可以一步走两级,求人从阶梯底端走到顶端可以有多少种不同的走法。 输入 一个整数n,代表台阶的阶数。 输出 求人从阶梯底端走到顶端可以有多少种不同的走法,输出结…

建设网站怎么备案做ppt好用的网站

1 实习 1.1 讲解一下curd启动器 1.2 数据同步的过程是怎么实现的,同步过程中的数据一致性怎么保证的 答:同步过程中会记录断点,表示每一批同步成功时的位置,如果对端出现问题,则下一次同步会继续从这个断点后开始同…

传统网站模版万网搜

所谓数字三角形模型,即是从数字三角形这一题衍生出来的 题目为经典题目,不再赘述,此笔记根据AcWing算法提高课来进行对数字三角形模型衍生例题的记录 题目关系如下(见AcWing里的AcSaber): AcWing.1015.摘…

揭阳网站建设揭阳易捷网站内容管理系统漏洞

本文内容 隐式数值转换显式数值转换 C# 提供了一组整型和浮点数值类型。 任何两种数值类型之间都可以进行隐式或显式转换。 必须使用强制转换表达式来执行显式转换。 1、隐式数值转换 下表显示内置数值类型之间的预定义隐式转换: From到sbyteshort、int、long、…

网站seo啥意思软件制作思维导图的优势

文章目录 前言一、功能展示上传功能点下载功能点效果展示 二、思路流程上传流程下载流程 三、代码示例四、疑问 前言 Amazon Simple Storage Service(S3),简单存储服务,是一个公开的云存储服务。Web应用程序开发人员可以使用它存…

成都微信网站设计耒阳网站建设

net user 是 Windows 操作系统自带的一个命令行工具,用于管理和查询本地用户账户信息。在域环境中,它可以用于管理本地用户账户,但对域用户账户的操作能力有限,尤其是查看域账户锁定状态等功能。以下是 net user 命令的详解&#…

32岁学做网站有关毕业设计的网站

您所在位置:网站首页 > 海量文档&nbsp>&nbsp高等教育&nbsp>&nbsp科普读物使用隐马尔可夫模型的运动笔迹手势识别.doc10页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性…

做湲网站沈阳做网站哪个好

《Flink 详解》系列(已完结),共包含以下 10 10 10 篇文章: 【大数据】Flink 详解(一):基础篇【大数据】Flink 详解(二):核心篇 Ⅰ【大数据】Flink 详解&…

邯郸广告公司网站建设wordpress rest 认证

排查思路 当正在运行的Java服务导致服务器的CPU突然飙高时,我们该如何排查定位到哪个接口的哪行代码导致CPU飙高的问题呢?我主要提供两个方案: jstackarthas 准备工作 代码准备 现在需要准备一段可以让服务器CPU飙高的代码以及把代码部署…

四川建设厅网站 蒋深圳app开发公司都有哪些

随着科技的发展,人工智能、大数据等技术逐渐应用于各个领域,为人们的生活带来便利。在电力行业,AR(增强现实)技术的应用也日益广泛。AR配电所巡检系统作为一种新型的巡检方式,可以实现多种功能,提高巡检效率&#xff0…

昆山智能网站开发wordpress 远程设置

2020年5月20日,全球领先的多云应用服务厂商F5公司以线上峰会的形式开启了F5 2020 “代码到用户” 暨F5中国20周年纪念庆典,深入解读了F5“代码到用户” 的战略。F5全球首席执行官范仲林先生、F5全球首席科学家及首席技术官林耕先生、NGINX创始人Igor Sys…

网站建设和维护自学北京哪家做网站和网络推广好的

什么是LoRa LoRa无线通信技术是 Semtech 在2012年开发出来的一款适合物联网使用的射频IC、其设计理念为低功耗、长距离、低成本、网路简单、易于扩展的无线数传技术。 在一般的通信中、通信的距离与功耗成正比、传输距离越远、功耗越高,而LoRa无线通信模块可以实现…

删除百度收录的网站自己怎么开发网站

Pod 的状态和 Pod 里面的容器的状态是密切相关的。Pod 是 Kubernetes 中最小的调度单元,一个 Pod 可以包含一个或多个容器。Pod 的状态反映了 Pod 中所有容器的状态情况。 Pod 的状态包括: Pending(等待):Pod 已经被创…

网站层级高清免费素材网

简介 智能指针是一种特殊的指针类型,它能够自动管理内存资源,避免常见的内存泄漏和多次释放等。在C 11标准中出现了新的智能指针unique_ptr、 shared_ptr、weak_ptr等。 std::unique_ptr 用于管理动态分配的内存资源,它提供了自动释放内存的功…

flash网站特点wordpress速度太慢

es6对象浅复制: 字符串大小比较: 如果是汉字:a.charCodeAt() > b.charCodeAt() //使用carCodeAt将器转为asci码,在进行比较 如果是非汉字的字符串:直接比较或者使用上面的转码比较都可以。 如果是日期比较&#xff…

服装网站建设准备英文注册查询网站

1688商品详情API在跨境电子商务中的重要性 一、引言 随着全球电子商务的迅速发展和普及,跨境电子商务已经成为国际贸易的一种重要形式。1688作为全球最大的B2B电子商务平台之一,不仅为国内商家提供了丰富的商品资源,同时也为跨境商家提供了…

dedecms 做门户网站深圳做网站的公司有哪些

#expect脚本在自动化部署中的具体应用 expect脚本是一个非常好的交互式应用脚本,在自动化部署中,可以使用这个脚本来实现全自动的自动化部署。下面是一些具体的应用案例。 场景一:自动安装mysql 可以使用expect脚本来实现mysql自动安装&…

a站为什么不火了人力外包项目发布平台

实现文件拖拽功能 1、设备 -- 安装增强功能 -- /bin/sh VboxLinuxaddition.run -- reboot 2、设备 -- 拖放 -- 双向 3、虚拟机 -- 设置 -- 存储 -- 控制器:SATA -- 勾选 使用主机输入输出(I\O 缓存) 4、虚拟机硬盘 -- 勾选固态驱动器 转载于…

西安外贸网站建设做英语quiz的网站

文章目录 [toc] 二维随机向量及其分布随机向量离散型随机向量的概率分布律性质示例问题解答 连续型随机向量的概率密度函数随机向量的分布函数性质连续型随机向量均匀分布 边缘分布边缘概率分布律边缘概率密度函数二维正态分布示例问题解答 边缘分布函数 二维随机向量及其分布 …