【基础算法精讲 10】如何灵活运用递归?
📅 2026/6/24 8:12:57
👁️ 次浏览
100. 相同的树给你两棵二叉树的根节点p和q编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同并且节点具有相同的值则认为它们是相同的。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val val; * this.left left; * this.right right; * } * } */classSolution{publicbooleanisSameTree(TreeNodep,TreeNodeq){//边界值当前节点为空时则返回falseif(pnull||qnull){returnpq;//都为null则返回true}//相同的树当前节点的值相等且左子树相等右子树相等。returnp.valq.valisSameTree(p.left,q.left)isSameTree(p.right,q.right);}}101. 对称二叉树给你一个二叉树的根节点root 检查它是否轴对称。思路在相同的树这段代码上改判断左子树的左孩子是否等于右子树的右孩子左子树的右孩子是否等于右子树的左孩子 代码classSolution{publicbooleanisSameTree(TreeNodep,TreeNodeq){if(pnull||qnull){returnpq;}returnp.valq.valisSameTree(p.left,q.right)isSameTree(p.right,q.left);}publicbooleanisSymmetric(TreeNoderoot){//可以在相同的树代码逻辑上改//看左子树的左孩子是否等于右子树的右孩子左子树的右孩子是否等于左子树的右孩子returnisSameTree(root.left,root.right);}}110. 平衡二叉树给定一个二叉树判断它是否是平衡二叉树思路 用-1表示该树不是平衡二叉树如果该树中某一个节点不是平衡节点就立马返回-1一直返回到调用入口表示该树为非平衡二叉树。 代码classSolution{//获得子树高度publicintgetDepth(TreeNodenode){if(nodenull){return0;}//获取左子树高度intleft_heightgetDepth(node.left);if(left_height-1){return-1;}//获取右子树高度intright_heightgetDepth(node.right);if(right_height-1||Math.abs(left_height-right_height)1){return-1;}returnMath.max(left_height,right_height)1;}publicbooleanisBalanced(TreeNoderoot){//用-1记录该树为非平衡二叉树returngetDepth(root)!-1;}}199. 二叉树的右视图给定一个二叉树的根节点root想象自己站在它的右侧按照从顶部到底部的顺序返回从右侧所能看到的节点值。示例 1输入root [1,2,3,null,5,null,4]输出[1,3,4]解释思路1、用一个全局数组ans,初始值为空。2、先遍历右子树比较当前树的深度是否大于数组长度若大于则表示该节点是被第一次看见需要记录到答案数组中。3、必须先遍历右子树再遍历左子树 代码classSolution{ListIntegeransnewArrayList();publicvoiddepth(TreeNodenode,intdepth){if(nodenull){return;}depth1;if(depthans.size()){ans.add(node.val);}//必须先遍历右子树depth(node.right,depth);depth(node.left,depth);}publicListIntegerrightSideView(TreeNoderoot){//先遍历右子树//若答案的长度小于当前树的深度时证明该节点是第一个能看到的结点要把该节点记录到答案中。depth(root,0);returnans;}}
🍪 烤糊的孪生饼干1. 为什么叫“孪生饼干”?在数论里,孪生质数指相差为 2 的质数对(如 3 和 5, 11 和 13)。但这里的厨师更懒,他选的 p1013 和 q1019 相差只有 6。在 RSA 里,如果 p …
📅 2026/6/24 8:12:57
手机上看网课、追剧、看教学视频,屏幕小不说,时间长了眼睛也累。把画面投到电视大屏上,观感会好很多,孩子上网课也不用凑在手机前面了。不过投屏这件事,实操起来问题不少:搜不到电视、投上去卡顿、某些视频…
📅 2026/6/24 8:12:57
很多团队第一次遇到数据库瓶颈,都会先怀疑性能:SQL 慢、实例不够大、写入扛不住。但当数据库扩展到几百甚至上千个实例时,真正先崩溃的通常不是查询速度,而是管理这套系统的能力。Etsy 最近完成的一次数据库迁移就暴露了这个阶段的…
📅 2026/6/24 8:07:54
这样写完全可以,你的问题列表涵盖了大模型(LLM)Agent 框架从架构设计(Protocol、工厂模式)、异步并发(to_thread)、数据安全(脱敏)、状态管理(Memory、上下文…
📅 2026/6/24 10:28:44
以下是基于原生 Java 客户端(amqp-client)的 RabbitMQ 入门示例代码。为了保持代码清晰,我们将分为连接工具类、简单模式(Hello World)和工作队列模式(Work Queues)三个部分。
1. 前置准备
在运行代码前,请确保已在 pom.xml 中引入 RabbitMQ 客户端依赖:…
📅 2026/6/24 10:28:44
文章目录Charts:iOS 平台的图表绘制库Charts:iOS 平台的图表绘制库
Charts 是一个用于 iOS、tvOS 和 macOS 的开源图表库,支持 8 种图表类型,GitHub 上收获了 28k Star。 Charts 的由来比较简单。Android 端有一个很流行的图表库…
📅 2026/6/24 10:28:44
一、Router 页面路由1. 功能实现应用内不同页面之间的跳转、页面栈管理、页面互相传参;可以实现返回上一页、替换当前页面、退出页面等功能。2. 核心常用router.pushUrl():跳转新页面,保留上一页页面栈,点击返回可以回到上一页&am…
📅 2026/6/24 10:28:44
如果你是华南做塑胶制造的老板或运营负责人,近两年一定感受到一个明显的变化:以前靠展会、地推、电话销售拿订单,现在客户越来越习惯先在短视频平台“搜一下”“刷到再问”。尤其到 2026 年,AI 短视频矩阵已经成为工厂拓客的标配&…
📅 2026/6/24 10:28:44
理解 MCP 概念以后,下一步就是把真实系统接进去。
比如:
公司工单系统
内部 CRM
订单后台
部署平台
知识库
自建搜索服务这一讲我们用一个通用方法,讲清楚如何把外部系统包装成 MCP Tool。
先说结论:先设计边界,再写…
📅 2026/6/24 10:23:44
TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler
TaskJuggler是一款强大的开源项目管理工具&#…
📅 2026/6/24 0:02:25
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav
angular-mobile-nav是一款专为…
📅 2026/6/24 0:02:25
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP
Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,…
📅 2026/6/24 0:02:25
1. 从手册到实战:SLIDER与SPINBOX控件的深度解析在嵌入式GUI开发里摸爬滚打十几年,我见过太多项目因为界面交互的“小问题”而卡壳。参数调节不跟手、数值输入效率低下,这些看似不起眼的细节,往往是决定产品用户体验成败的关键。e…
📅 2026/6/24 6:06:01
暗黑2重获新生:D2DX如何让经典游戏在现代Windows系统上流畅运行 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx
…
📅 2026/6/23 2:15:55
CompressO终极指南:免费开源的视频图像压缩神器 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO
你…
📅 2026/6/24 4:59:40