代码随想录day17

POI 写word,添加标题,表格,图片,自动生成目录,合并单元格 工程地址:https://github.com/zheng-chang-wei/word package com.example.demo1.poi; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileOutputStream; public class ... 阅读详情

二叉树 5

最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

  1. 创建一个根节点,其值为 nums 中的最大值。
  2. 递归地在最大值 左边 的 子数组前缀上 构建左子树。
  3. 递归地在最大值 右边 的 子数组后缀上 构建右子树。
    返回 nums 构建的 最大二叉树 。

思路

同中序和后序遍历构造二叉树一样

class Solution {
    Map<Integer,Integer> map = new HashMap<>();
    public TreeNode constructMaximumBinaryTree(int[] nums) {
        int max = 0;
        for(int i = 0;i < nums.length;i++){
            map.put(nums[i],i);
            max = Math.max(max,nums[i]);
        }
        TreeNode root = new TreeNode(max);
        root.left = buildTree(nums,0,map.get(max));
        root.right = buildTree(nums,map.get(max) + 1,nums.length);
        return root;
    }
    public TreeNode buildTree(int[] nums,int beg,int end){
        if(beg >= end)
            return null;
        int max = 0;
        for(int i = beg;i < end;i++){
            max = Math.max(max,nums[i]);
        }
        int maxInd = map.get(max);
        TreeNode root = new TreeNode(max);
        
        root.left = buildTree(nums,beg,maxInd);
        root.right = buildTree(nums,maxInd + 1,end);

        return root;
    }
}

合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

思路

在递归的过程中相加,同时递归两个二叉树,即同时递归左边和右边

class Solution {
    // 递归
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if (root1 == null) return root2;
        if (root2 == null) return root1;

        root1.val += root2.val;
        root1.left = mergeTrees(root1.left,root2.left);
        root1.right = mergeTrees(root1.right,root2.right);
        return root1;
    }
}

二叉搜索数中的搜索

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

在这里插入图片描述

思路

思路简单,只需在递归遍历二叉树的过程中,进行判断是否相等。

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        if(root == null)
            return null;
        // if(root.val == val)
        //     return root;
        if(root.val > val)
            return searchBST(root.left,val);
        if(root.val < val)
            return searchBST(root.right,val);
        return root;
    }
}

验证二叉搜索数

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

在这里插入图片描述

思路

本体需要注意细节,不能单纯的比较左节点小于中间节点,右节点大于中间节点就完事了。
我们要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。

class Solution {
    // 注意细节,不是通过判断左节点的值小于根,右节点的值大于根
    TreeNode max;
    public boolean isValidBST(TreeNode root) {
        if(root == null)
            return true;
        boolean left = isValidBST(root.left);

        if(!left)
            return false;
        
        // 中序遍历,验证遍历的元素是不是从小到大
        if(max != null && root.val <= max.val)
            return false;
        
        max = root;

        boolean right = isValidBST(root.right);

        return right;
    }
}
PyTorch实战(26)——PyTorch分布式训练 在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。 阅读详情

相关推荐

开源LocalAI本地人工智能安装教程

LocalAI是一款能在本地运行的人工智能应用,它兼容了OpenAI API规范,它可以在普通的电脑运行,不需要GPU,也不需要联网,音频转录

2301_78652552的博客 3614

代码随想录 Day17 二叉树

生病了 404并未写完。

2302_77073236的博客 431

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案

本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。

water的专栏 1148

代码随想录Day17

p,q]

HNTZB的博客 331

别再死记硬背了!用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率

本文深度解析如何使用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率(GTFP)。通过详细的模型选择对比、数据准备策略和MaxDEA操作流程,帮助研究者科学构建指标体系并准确解读结果,提升环境管理研究的实证分析能力。

weixin_28731231的博客 314

MATLAB安装

Matlab 2016a 安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p       密码:17gg   Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_win64.part2.rar两部分安装文件和Matlab 2016a Win64 Crack破解文件。 2、解压安装文件(解...

qq_36734094的博客 17万+

代码随想录算法-day17

二叉树(5)

qq_46147058的博客 321

从机械到数字:EC11旋转编码器与ESP32的PWM控制艺术

本文详细解析了EC11旋转编码器与ESP32的PWM控制技术,探讨了如何将机械旋转动作转换为精确的数字信号控制。通过硬件连接、信号处理和软件优化等实践技巧,开发者可以构建高效的人机交互系统,适用于智能照明、电机控制等多种应用场景。

android的专栏 785

代码随想录60期day 17

【代码】代码随想录60期day 17。

qq_19555169的博客 248

跨应用服务器的自定义 IDoc 传输实战:以 CATSDB 工时为例,打通两套 SAP 系统的数据通道

本文介绍了在企业多SAP系统环境下,使用SAP ALE/IDoc技术实现工时数据跨系统传输的解决方案。文章从技术选型、系统架构到具体配置步骤进行了详细说明,重点阐述了IDoc/ALE在异步传输、全链路追踪和数据重放方面的优势。 文章详细讲解了端到端实施流程,包括Logical System配置、RFC Destination创建、Message Type定义、Segment和Basic Type设计等关键步骤。同时提供了出站封装的ABAP代码示例,强调调用MASTER_IDOC_DISTRIBUTE函数后执

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 173

redhawk如何看高toggle rate instance

1.图形界面View-Power Map - Toggle Map of Instances。redhawk通过报告和图形界面两种方式查看高toggle rate的instance。2.看warning log,在adsRpt/Warn里,搜toggle rate。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 617

【代码随想录训练营】Day17-二叉树

代码随想录训练营第17天

weixin_38255385的博客 1849

【RKNN】RKNN(Rockchip Neural Network)​​ 的详解

RKNN 为 Rockchip 硬件提供了高效的 AI 推理解决方案,适合需要低功耗、实时响应的边缘场景

浩瀚之水的专栏 1685

《代码随想录》Day17打卡

3.第三步:确定单次递归函数中的逻辑:首先将left的值赋值给maxindex,然后求得当前数组中的最大值的索引值,将该最大值作为新的节点的值传入到树的节点中,然后分别对该节点的左右子树进行构建,构建时需要注意的是传入的参数值,其中构建左子树时,left就是递归时传入的left值,而right值maxindex - 1值。在构建右子树时,传入的left值是maxindex + 1值,而right不变就是调用递归时的值。4.第三步:确定单次递归中的逻辑:以左子树为根基进行合并,当左子树为空时,返回右子树。

qq_59615070的博客 1042

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

代码随想录算法训练营day17

今天是算法营的第17天,最近比较忙,题目做完了没来得及写博客,抽空补上了。今日任务:● 654.最大二叉树● 617.合并二叉树● 700.二叉搜索树中的搜索● 98.验证二叉搜索树今天主要是学习了:1.输入是数组的时候,递归的时候可以不需要重新构造新数组,只需要保存对应的下标。2.需要同时操作两个二叉树,迭代法可以使用队列同时放入两个节点,再取两次出来做处理。3.二叉搜索树的特性:左

qq_38365428的博客 1067

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

代码随想录day17-最大二叉树/合并二叉树/二叉搜索树中的搜索/验证二叉搜索树

654.最大二叉树递归:注意m要设初始值,不然默认负数会出错。递归时候注意数组范围取值。

zhengjojo的博客 296

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

代码随想录刷题Day17 | 110. 平衡二叉树 | 257. 二叉树的所有路径 | 404. 左叶子之和

代码随想录刷题Day17 | 110. 平衡二叉树 | 257. 二叉树的所有路径 | 404. 左叶子之和

DUM1615的博客 316

代码随想录打卡DAY17

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。你需要在 BST 中找到节点值等于 val 的节点。返回以该节点为根的子树。如果节点不存在,则返回 null。输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]

weixin_57015087的博客 1014

代码随想录刷题day17 110.平衡二叉树;257. 二叉树的所有路径;404.左叶子之和

代码随想录刷题day17

weixin_43127049的博客 258

代码随想录DAY17|二叉树4

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回 false。

XIAOHAIYOU的博客 1054

代码随想录 day17

先序遍历。

夜空像是一片紫水潭,星星是些不动的大亮点,夜风是些浅蓝色的流线,云端传来喧嚣的声音。 442

代码随想录打卡Day17

给定一个不重复的整数数组nums。可以用下面的算法从numsnums返回 nums构建的最大二叉树。递归调用如下所示:- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5]。- [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1]。- 空数组,无子节点。- [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1]。- 空数组,无子节点。- 只有一个元素,所以子节点是一个值为 1 的节点。

jianbaigreat的博客 981

代码随想录Day 17

代码随想录Day 17

weixin_43823613的博客 113
上一篇: 【手撸Spring 04】注入属性和依赖对象
下一篇: 代码随想录day18
Strongwind_
博客等级 码龄7年 139粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值