代码随想录算法训练营DAY19 | 二叉树 (6)
一、LeetCode 654 最大二叉树
题目链接:654.最大二叉树
https://leetcode.cn/problems/maximum-binary-tree/
思路:坚持左开右闭原则,递归划分数组元素生成左右子树。
class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return travel(nums,0,nums.length);}//坚持左闭右开public TreeNode travel(int[] nums, int left, int right){//空数组,返回空值if(right - left < 1){return null;}//数组只有一个元素,为叶子节点if(right - left == 1){return new TreeNode(nums[left]);}//找到数组中的最大元素及其下标int maxIndex = left;int maxValue = nums[left];for(int i = left+1; i < right; i++){if(nums[i] > maxValue){maxIndex = i;maxValue = nums[i];}}TreeNode node = new TreeNode(nums[maxIndex]);//划分数组生成左右子树node.left = travel(nums,left,maxIndex);node.right = travel(nums,maxIndex+1,right);return node;}
}
/*** 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;* }* }*/
二、LeetCode 617 合并二叉树
题目链接:617.合并二叉树
https://leetcode.cn/problems/merge-two-binary-trees/submissions/502582353/
思路:前序递归遍历,处理空节点情况~
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {//处理root1和root2节点为空的情况if(root1 == null && root2 == null){return null;}if(root1 != null && root2 == null){return root1;}if(root1 == null && root2 != null){return root2;}//建立新节点TreeNode root = new TreeNode(root1.val + root2.val);//中、左、右递归遍历root.left = mergeTrees(root1.left,root2.left);root.right = mergeTrees(root1.right,root2.right);return root;}
}
/*** 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;* }* }*/
三、LeetCode 700 二叉树中的搜索
题目链接:700.二叉树中的搜索
https://leetcode.cn/problems/search-in-a-binary-search-tree/
思路:前序遍历,非左即右~
class Solution {public TreeNode searchBST(TreeNode root, int val) {//找到空节点,说明该路径上没有符合条件的节点if(root == null){return null;}//找到符合条件的节点if(root.val == val){return root;}//前序遍历 中、左、右TreeNode left = searchBST(root.left,val);TreeNode right = searchBST(root.right,val);//非左即右return left == null ? right : left;}
}
/*** 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;* }* }*/
四、小结
静心刷题ovo
相关文章:
代码随想录算法训练营DAY19 | 二叉树 (6)
一、LeetCode 654 最大二叉树 题目链接:654.最大二叉树https://leetcode.cn/problems/maximum-binary-tree/ 思路:坚持左开右闭原则,递归划分数组元素生成左右子树。 class Solution {public TreeNode constructMaximumBinaryTree(int[] num…...
【C++】实现Date类的各种运算符重载
上一篇文章只实现了operator操作符重载,由于运算符较多,该篇文章单独实现剩余所有的运算符重载。继续以Date类为例,实现运算符重载: 1.Date.h #pragma once#include <iostream> #include <assert.h>using namespace …...
【Linux】程序地址空间 -- 详解 Linux 2.6 内核进程调度队列 -- 了解
一、程序地址空间回顾 在学习 C/C 时,我们知道内存会被分为几个区域:栈区、堆区、全局/静态区、代码区、字符常量区等。但这仅仅是在语言层面上的理解,是远远不够的。 如下空间布局图,请问这是物理内存吗? 不是&…...
10-通用类型、特质和生命周期
上一篇: 09-错误处理 每种编程语言都有有效处理概念重复的工具。在 Rust 中,泛型就是这样一种工具:具体类型或其他属性的抽象替身。我们可以表达泛型的行为或它们与其他泛型的关系,而不需要知道在编译和运行代码时它们的位置。 函…...
STM32CubeMX,定时器之定时功能,入门学习,如何设置prescaler,以及timer计算PWM输入捕获方法(重要)
频率变小,周期变长 1,参考链接(重要) STM32CubeMX——定时器之定时功能(学习使用timer定时器的设置) STM32测量PWM信息(学习使用设置pwm输入捕获) 通用定时器中两个重要参数的设置心…...
蓝桥杯:C++队列、优先队列、链表
C普通队列 算法竞赛中一般用静态数组来模拟队列,或者使用STL queue。使用C的STL queue时,由于不用自己管理队列,因此代码很简洁。队列的部分操作如下。 C优先队列 很多算法需要用到一种特殊的队列:优先队列。它的特点是最优数据…...
【C语言】长篇详解,字符系列篇1-----“混杂”的各种字符类型字符转换和strlen的模拟实现【图文详解】
欢迎来CILMY23的博客喔,本期系列为【C语言】长篇详解,字符系列篇1-----“混杂”的各种字符函数……,图文讲解各种字符函数,带大家更深刻理解C语言中各种字符函数的应用,感谢观看,支持的可以给个赞哇。 前言…...
2024年【高处安装、维护、拆除】考试总结及高处安装、维护、拆除考试技巧
题库来源:安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除考试总结根据新高处安装、维护、拆除考试大纲要求,安全生产模拟考试一点通将高处安装、维护、拆除模拟考试试题进行汇编,组成一套高处安装、维护、拆除全真模拟考试试题&a…...
开源无处不在,发展创新下又有何弊端
随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件,促进了软件行业的繁荣。然而,在使用开源软件的过…...
LeetCode 0429.N 叉树的层序遍历:广度优先搜索(BFS)
【LetMeFly】429.N 叉树的层序遍历:广度优先搜索(BFS) 力扣题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/ 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)…...
Practical User Research for Enterprise UX
2.1 Why It’s Hard to Get Support for Research in Enterprises 2.1.1 Time and Budget Instead of answering the question “What dowe gain if we do this research?”, ask instead “What do we stand to lose if we don’t do the research?” 2.1.2 Legacy Thinkin…...
文生视频:Sora模型报告总结
作为世界模拟器的视频生成模型 我们探索视频数据生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空补丁进行操作的变压器架构。我们最大的模型 Sora 能够生成一分钟…...
GA 374-2019 电子防盗锁检测
电子防盗锁是指以电子方式识别,处理相关信息并控制执行机构实施启闭且达到规定安全级别的锁具。 GA 374-2019 电子防盗锁检测项目 测试项目 测试标准 外观 GA 374 外壳防护等级 GA 374 功能 GA 374 编码组合数 GA 374 主锁舌伸出长度 GA 374 主锁舌灵活…...
代码随想录day26 Java版
今天开始刷贪心算法,新手保护期中爽得一批 455.分发饼干 先把两个数组排序,采用先满足胃口小的孩子,饼干数组无条件向后扫描,能满足孩子后再向后扫描胃口数组 class Solution {public int findContentChildren(int[] g, int[] …...
英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意
此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…...
数据集合
目录 并集 union union all 区别 交集 intersect 差集 minus 错误操作 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 常用的数学集合有:交集、并集、差集、补集 每一次查询实际上都会返回数据集合,…...
php基础学习之作用域和静态变量
作用域 变量(常量)能够被访问的区域,变量可以在常规代码中定义,也可以在函数内部定义 变量的作用域 在 PHP 中作用域严格来说分为两种,但是 PHP内部还定义一些在严格意义之外的一种,所以总共算三种—— 局部…...
SP1:基于Plonky3构建的zkVM
1. 引言 SP1为SuccictLab开源的,基于Plonky3构建的zkVM。 开源代码见: https://github.com/succinctlabs/sp1(Rust) 当前暂未实现onchain-verifier,但会采用标准的STARK->SNARK verifier。 SP1 zkVM基于的指令…...
Python爬虫之文件存储#5
爬虫专栏:http://t.csdnimg.cn/WfCSx 文件存储形式多种多样,比如可以保存成 TXT 纯文本形式,也可以保存为 JSON 格式、CSV 格式等,本节就来了解一下文本文件的存储方式。 TXT 文本存储 将数据保存到 TXT 文本的操作非常简单&am…...
Spring Boot 笔记 012 创建接口_添加文章分类
1.1.1 实体类添加校验 package com.geji.pojo;import jakarta.validation.constraints.NotEmpty; import lombok.Data;import java.time.LocalDateTime;Data public class Category {private Integer id;//主键IDNotEmptyprivate String categoryName;//分类名称NotEmptypriva…...
告别数据迷宫:手把手教你用DataHub搭建企业级元数据搜索中心(支持MySQL/Airflow/Superset)
告别数据迷宫:手把手教你用DataHub搭建企业级元数据搜索中心(支持MySQL/Airflow/Superset) 当数据资产像野草一样在组织内疯长时,工程师们常常发现自己被困在由数百个数据表、数十个BI看板和错综复杂的调度任务构成的迷宫中。上周…...
Noi:整合多 AI 服务的新利器能否突出重围?
Noi:一站式 AI 服务整合新体验Noi 是一款图形用户界面(GUI)应用程序,它的核心亮点在于将所有 AI 服务整合到一处。用户通过单一用户界面(UI)就能访问 ChatGPT、Claude、Gemini、Perplexity 等多个服务&…...
老Mac焕发新生:突破硬件限制的macOS升级全攻略
老Mac焕发新生:突破硬件限制的macOS升级全攻略 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当你的Mac提示"无法更新到最新系统",当常…...
OpCore-Simplify:让黑苹果配置从专业难题变为点击操作,3步完成自动化EFI构建
OpCore-Simplify:让黑苹果配置从专业难题变为点击操作,3步完成自动化EFI构建 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你…...
LangFlow实战案例:如何用拖拽方式搭建智能写作助手
LangFlow实战案例:如何用拖拽方式搭建智能写作助手 1. 引言:为什么选择LangFlow 在AI技术快速发展的今天,大语言模型已经展现出强大的文本生成能力。然而,对于大多数非技术背景的内容创作者来说,直接调用API或编写复…...
本地数据库工具革新:浏览器应用如何3分钟解决SQLite查看难题
本地数据库工具革新:浏览器应用如何3分钟解决SQLite查看难题 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数字化开发的日常工作流中,SQLite数据库文件查看往往成为效率…...
OpenClaw安全防护:运行百川2-13B-4bits模型时的5条系统权限建议
OpenClaw安全防护:运行百川2-13B-4bits模型时的5条系统权限建议 1. 为什么需要安全防护 当我第一次在本地部署OpenClaw并接入百川2-13B-4bits模型时,那种兴奋感至今难忘——终于可以在自己的电脑上运行一个强大的AI助手了。但很快,一个意外…...
OpenClaw技能开发入门:为nanobot编写自定义文件处理器
OpenClaw技能开发入门:为nanobot编写自定义文件处理器 1. 为什么需要自定义技能 去年夏天,我发现自己每周都要花两小时手动整理项目文档——把分散在各处的Markdown文件合并、去重、重新编号。当我第三次在重复劳动中睡着时,终于决定用Open…...
java新手福音:用快马ai生成渐进式八股文学习项目,轻松入门核心知识
作为一个Java新手,刚开始接触"八股文"这个概念时,我完全摸不着头脑。直到在InsCode(快马)平台上尝试了他们的Java学习项目生成功能,才发现原来枯燥的理论知识可以变得这么生动有趣。 渐进式学习路径设计 这个项目最让我惊喜的是它的…...
Wandb账号串线了?手把手教你排查和修复‘实验记录跑到别人账户’的坑
Wandb账号串线排查指南:如何避免实验记录跑到他人账户 实验室的GPU服务器指示灯闪烁着,你刚提交的模型训练任务在终端显示"Run completed successfully",但刷新了十几次Wandb面板——那些期待中的损失曲线和评估指标依然不见踪影。…...
