力扣labuladong——一刷day47
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、力扣993. 二叉树的堂兄弟节点
- 二、力扣1315. 祖父节点值为偶数的节点和
- 三、力扣1448. 统计二叉树中好节点的数目
- 四、力扣1469. 寻找所有的独生节点
前言
二叉树的递归分为「遍历」和「分解问题」两种思维模式,这道题需要用到「遍历」的思维。
一、力扣993. 二叉树的堂兄弟节点
/*** 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;* }* }*/
class Solution {int depthX = -1, depthY = -1;boolean flag = true;public boolean isCousins(TreeNode root, int x, int y) {fun(root,1,x,y);if(flag == false){return false;}if(depthX == depthY){return true;}return false;}public void fun(TreeNode root, int depth, int x, int y){if(root == null){return ;}if(root.val == x){depthX = depth;}if(root.val == y){depthY = depth;}if(root.left != null && root.right != null){if((root.left.val == x || root.left.val == y) && (root.right.val == x || root.right.val == y)){flag = false;}}fun(root.left,depth+1,x,y);fun(root.right,depth+1,x,y);}
}
二、力扣1315. 祖父节点值为偶数的节点和
/*** 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;* }* }*/
class Solution {int sum = 0;public int sumEvenGrandparent(TreeNode root) {fun(root, null, null);return sum;}public void fun(TreeNode root, TreeNode parent, TreeNode grandParent){if(root == null){return;}if(grandParent != null && grandParent.val % 2 == 0){sum += root.val;}fun(root.left, root, parent);fun(root.right, root, parent);}
}
三、力扣1448. 统计二叉树中好节点的数目
/*** 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;* }* }*/
class Solution {int count = 0;public int goodNodes(TreeNode root) {fun(root,Integer.MIN_VALUE);return count;}public void fun(TreeNode root, int preMax){if(root == null){return;}if(root.val >= preMax){preMax = root.val;count ++;}fun(root.left, preMax);fun(root.right, preMax);}
}
四、力扣1469. 寻找所有的独生节点
/*** 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;* }* }*/
class Solution {List<Integer> res = new ArrayList<>();public List<Integer> getLonelyNodes(TreeNode root) {fun(root);return res;}public void fun(TreeNode root){if(root == null){return;}if(root.left == null && root.right != null){res.add(root.right.val);}if(root.left != null && root.right == null){res.add(root.left.val);}fun(root.left);fun(root.right);}
}
相关文章:
力扣labuladong——一刷day47
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣993. 二叉树的堂兄弟节点二、力扣1315. 祖父节点值为偶数的节点和三、力扣1448. 统计二叉树中好节点的数目四、力扣1469. 寻找所有的独生节点 前言 二叉…...
蓝桥杯-02-python组考点与14届真题
文章目录 蓝桥杯python组考点与14届真题参考资源python组考点1. 组别2. 竞赛赛程3. 竞赛形式4. 参赛选手机器环境5. 试题形式5.1. 结果填空题5.2. 编程大题 6. 试题考查范围7. 答案提交8. 评分9. 样题样题 1:矩形切割(结果填空题)样题 2&…...
【0240】源码分析PG内核中的关键字列表(SQL keywords)
相关文章: 【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior) 【0239】从编译原理角度理解 #include “xxx“ 或 #include<xxx> 的实现机制 1. PostgreSQL的SQL关键字列表(SQL Keywords) 1.1 keywords.c源文件内容 keywords.c源文件中的内容…...
【Python深度学习第二版】学习笔记之——什么是深度学习
机器学习是将输入(比如图像)映射到目标(比如标签“猫”)的过程。 这一过程是通过观察许多输入和目标的示例来完成的。 深度神经网络通过一系列简单的数据变换(层)来实现这种输入到目标的映射,这…...
ddns-go部署在linux虚拟机
ddns-go部署ubuntu1804 1.二进制部署 1.虚拟机部署 1.下载linux的x86二进制包 wget https://github.com/jeessy2/ddns-go/releases/download/v5.6.3/ddns-go_5.6.3_linux_x86_64.tar.gz2.解压 tar -xzf ddns-go_5.6.3_linux_x86_64.tar.gz3.拷贝执行文件到PATH下,…...
LeetCode Hot100 543.二叉树的直径
题目: 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 方法:灵神 代码: …...
Breadcrumb面包屑(antd-design组件库)简单用法和自定义分隔符
1.Breadcrumb面包屑 显示当前页面在系统层级结构中的位置,并能向上返回。 2.何时使用 当系统拥有超过两级以上的层级结构时; 当需要告知用户『你在哪里』时; 当需要向上导航的功能时。 组件代码来自: 面包屑 Breadcrumb - Ant Des…...
Mybatis 源码搭建
文章目录 源码下载测试模块搭建学习博客 源码下载 首先下载mybatis-parent的源码:gitee地址 > https://gitee.com/callback_lab/mybatis-parent.git 然后下载mybatis的源码:gitee地址 > https://gitee.com/callback_lab/mybatis-src.git 带中文…...
shell编程系列(5)-函数的定义
文章目录 前言函数定义处理函数参数通过getopts接收参数 前言 函数是编程语言中最重要的部分之一,虽然在shell脚本中并不是必须的,但是函数可以提高代码的复用性和可读性,当我们编写稍微复杂的脚本时,函数就是一个好帮手…...
鸿蒙应用开发-初见:入门知识、应用模型
基础知识 Stage模型应用程序包结构 开发并打包完成后的App的程序包结构如图 开发者通过DevEco Studio把应用程序编译为一个或者多个.hap后缀的文件,即HAP一个应用中的.hap文件合在一起称为一个Bundle,bundleName是应用的唯一标识 需要特别说明的是&…...
通过测试驱动开发(TDD)的方式开发Web项目
最近在看一本书《Test-Driven Development with Python》,里面非常详细的介绍了如何一步一步通过测试驱动开发(TDD)的方式开发Web项目。刚好这本书中使用了我之前所了解的一些技术,Django、selenium、unittest等。所以,读下来受益匪浅。 我相…...
技巧-PyCharm中Debug和Run对训练的影响和实验测试
简介 在训练深度学习模型时,使用PyCharm的Debug模式和Run模式对训练模型的耗时会有一些区别。 Debug模式:Debug模式在训练模型时,会对每一行代码进行监视,这使得CPU的利用率相对较高。由于需要逐步执行、断点调试、查看变量值等操…...
【古月居《ros入门21讲》学习笔记】07_创建工作空间和功能包
目录 说明: 1. 工作空间(workspace) 结构: 2. 创建工作空间和功能包 创建工作空间 编译工作空间 创建功能包 设置环境变量 3. 注意 同一个工作空间下,不能存在同名的功能包; 不同工作空间下,可以存在同名的功…...
第20章多线程
20.1线程简介 Windows操作系统是多任务操作系统,它以进程为单位。一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间(也可以称…...
深信服防火墙设置应用控制策略(菜鸟必看)
PS:前几天发布了关于深信服防火墙路由部署的流程:深信服防火墙路由模式开局部署-手把手教学(小白篇)-CSDN博客 昨天晚上有csdn的朋友联系我,说有一个关于ACL访问的问题要帮忙看一下 解决了以后,写个大概的…...
解锁 ElasticJob 云原生实践的难题
发生了什么 最近在逛 ElasticJob 官方社区时发现很多小伙伴都在头疼这个 ElasticJob 上云的问题,ElasticJob 本就号称分布式弹性任务调度框架,怎么在云原生环境就有了问题了呢,这就要从 Kubenertes 和 ElasticJob 的一些状态化说起。 有意思的…...
鸿蒙开发已成新趋势
随着华为鸿蒙操作系统的快速崭露头角,鸿蒙开发已然成为当前技术领域的热门新趋势。本文将深入探讨鸿蒙开发的重要性和独特优势,并详细介绍一些关键的鸿蒙开发技术和工具,以及它们对开发者个人和整个行业带来的深远影响。 首先,鸿蒙…...
万人拼团团购小程序源码系统+拼团设置+拼团管理 附带完整的搭建教程
随着互联网的快速发展,电子商务和社交电商的兴起,团购作为一种高效的营销策略和消费方式,受到了广大消费者的热烈欢迎。在此背景下,我们开发了一款基于微信小程序的万人拼团团购系统,旨在为用户提供一种更加便捷、高效…...
软信天成:速看!云端混合数据管理的最佳解决方案
智能时代,互联网、云计算和大数据的应用日益广泛,越来越多的企业将核心IT基础架构迁移至云上,以加速实现企业数字化转型,提高商业用户创新的可能性, 使 IT 变得更加灵活。 各个行业也正在进行从依赖本地系统到混合或云…...
GO 集成Prometheus
一、Prometheus介绍 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便…...
Java面试题宝典:基于vLLM-v0.17.1的智能题库生成与解析系统
Java面试题宝典:基于vLLM-v0.17.1的智能题库生成与解析系统 1. 智能面试助手惊艳亮相 最近试用了一款基于vLLM-v0.17.1的Java面试辅助工具,效果确实让人眼前一亮。这个系统不仅能自动生成高质量的面试题目,还能对用户答案进行智能评分和点评…...
LangChain重构多Skill Agent系统:智能工具集成实战
LangChain*重构的完整多Skill Agent系统 目录 LangChain*重构的完整多Skill Agent系统 一、LangChain 版本优势 二、完整可运行代码 三、各部分作用解释 1. 工具定义(`@tool` 装饰器) 2. 提示词模板(`ChatPromptTemplate`) 3. Agent 创建与执行器 4. 工具内部调用 LLM(`s…...
静态断言(static_assert)在C11中的使用
文章目录静态断言(static_assert)在C11中的使用 🎯什么是静态断言? 🤔为什么需要静态断言? 💡基本用法和代码示例 🛠️示例1: 验证类型大小示例2: 检查常量表达式示例3: 结构体验证高…...
7.ARP 代理与端口隔离:满足通信需求,保证通信安全
所谓ARP代理就是网络设备代替目标设备回应 ARP 请求 ,将自身 MAC 地址提供给请求方,以此满足了不同子网、VLAN 内及 VLAN 间设备的通信需求,在不同网络区域间搭建起通信桥梁。同时,它通过隐藏内部网络结构、限制广播域范围&#x…...
Phi-3-mini-4k-instruct-gguf完整指南:GGUF模型加载机制与llama-cpp内存优化原理
Phi-3-mini-4k-instruct-gguf完整指南:GGUF模型加载机制与llama-cpp内存优化原理 1. 认识Phi-3-mini-4k-instruct-gguf模型 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理问答、文本改写、摘要整理和简短创作…...
深度排查:Hyper-V 已关但 VirtualBox 仍报错的完整解决方案
一、先确认核心状态:是否真的完全关闭了 Hyper-V 1. 用命令验证 Hyper-V 状态 以管理员身份打开终端,执行以下命令,确认所有相关服务都已禁用: bcdedit /enum | findstr hypervisorlaunchtype你已经确认是 Off,再执行&…...
OCAD应用:多重转换式断续变焦系统设计
多组转换型变焦系统可以实现多档断续变焦。设计时同时设计多重可打入活动组,在打入时随意转换。多组转换型的活动组可以放置在会聚光路中也可以在平行光路中。选择在平行光路中,可利用活动组的无焦性来回倒置获得放大缩小两种不同变焦效果。 图1.多组转…...
从付费软件到自主开发:我用AI和FFmpeg实现了一个录屏工具杖
我为什么会发出这个疑问呢?是因为我研究Web开发中的一个问题时,HTTP请求体在 Filter(过滤器)处被读取了之后,在 Controller(控制层)就读不到值了,使用 RequestBody 的时候。 无论是字…...
桌面端 Claw 个人微信接入指南使
1.概述在人工智能快速发展的今天,AI不再仅仅是回答问题的聊天机器人,而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变…...
台达DVP PLC与3台西门子V20变频器通讯程序 台达PLC与3台西门子变频器通讯,可靠稳定
台达DVP PLC与3台西门子V20变频器通讯程序 台达PLC与3台西门子变频器通讯,可靠稳定,同时解决西门子变频器断电重启后,自准备工作,无需人为准备。 器件:台达DVP 14es PLC,昆仑通态触摸屏,13台西门…...
