当前位置: 首页 > news >正文

@ 代码随想录算法训练营第4周(C语言)|Day21(二叉树)

@ 代码随想录算法训练营第4周(C语言)|Day21(二叉树)

Day21、二叉树(包含题目 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先 )

530.二叉搜索树的最小绝对差

题目描述

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

题目解答

 struct TreeNode*pre;void absnode(struct TreeNode*root,int*result){if(root==NULL){return;}absnode(root->left,result);if(pre!=NULL){*result=(*result)>(root->val-pre->val)?(root->val-pre->val):(*result);}pre=root;absnode(root->right,result);}
int getMinimumDifference(struct TreeNode* root) {int result=INT_MAX;pre=NULL;absnode(root,&result);return result;
}

题目总结

搜索二叉树对应中序左中右。

501.二叉搜索树中的众数

题目描述

给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。

题目解答

 int pre;int count;int maxcount;int*res;int resnum;void dfs(struct TreeNode* root){if(root==NULL){return;}dfs(root->left);if(pre==root->val){count++;}else{count=1;pre=root->val;}if(count==maxcount){res[resnum++]=pre;}if(count>maxcount){resnum=0;res[resnum++]=pre;maxcount=count;}dfs(root->right);}
int* findMode(struct TreeNode* root, int* returnSize) {int*res=(int*)malloc(sizeof(int)*4001);pre=count=maxcount=resnum=0;dfs(root);*returnSize=resnum;return res;
}

题目总结

各个参数有不同的意义。

236. 二叉树的最近公共祖先

题目描述

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

题目解答

struct TreeNode* lowestCommonAncestor(struct TreeNode* root, struct TreeNode* p, struct TreeNode* q) {if(root==NULL){return NULL;}//应该是或关系if(root==p||root==q){return root;}struct TreeNode*left=lowestCommonAncestor(root->left,p,q);struct TreeNode*right=lowestCommonAncestor(root->right,p,q);if(left!=NULL&&right!=NULL){return root;}if(left!=NULL&&right==NULL){return left;}else if(right!=NULL&&left==NULL){return right;}else{return NULL;}
}

题目总结

后序遍历(左右中)就是天然的回溯过程,可以根据左右子树的返回值,来处理中节点的逻辑,后续回溯。

相关文章:

@ 代码随想录算法训练营第4周(C语言)|Day21(二叉树)

代码随想录算法训练营第4周(C语言)|Day21(二叉树) Day21、二叉树(包含题目 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先 ) 530.二叉搜索树的最小绝对差 题目…...

Android的消息机制--Handler

一、四大组件概述 Android的消息机制是由Handler、Message、MessageQueue,Looper四个类支撑,撑起了Android的消息通讯机制,Android是一个消息驱动系统,由这几个类来驱动消息与事件的执行 Handler: 用来发送消息和处…...

获取用户信息与token理解

获取用户信息和token是在开发Web应用程序时常见的需求,可以通过以下步骤来实现: 用户登录:用户在应用程序中输入用户名和密码进行登录验证。一旦验证成功,应用程序会生成一个唯一的token,并将其返回给客户端。存储tok…...

网络设备和网络软件

文章目录 网络设备和网络软件网卡交换机交换机的三个主要功能交换机的工作原理第二层交换和第三层交换交换机的堆叠和级联 路由器路由器工作原理 网关网关的分类 无线接入点(AP)调制解调器网络软件 网络设备和网络软件 网卡 网络接口卡又称网络适配器,简称网卡。网…...

全连接层是什么

个人浅显的看法: 当前层的每一个神经元,都和下一层的每一个神经元有连接,叫全连接层。 当前层有n个神经元,下一层有m个神经元,则全连接层,当前层的n个神经元和下一层m个神经元都有连接...

JAVA工程师面试专题-《Redis》篇

目录 一、基础 1、Redis 是什么 2、说一下你对redis的理解 3、Redis 为什么这么快? 4、项目中如何使用缓存? 5、为什么使用缓存? 6、Redis key 和value 可以存储最大值分别多是多少? 7、Redis和memcache有什么区别&#xf…...

JavaScript BOM

BOM:浏览器对象模型,可以让我们通过js来操作浏览器 window 代表整个浏览器窗口 同时也是页面中的全局对象 Location 代表浏览器地址栏信息 Navigator 代表浏览器信息 可以获取不同的浏览器信息 History 代表浏览器的历史记录 Screen 代表用户的屏幕信…...

uniapp微信小程序-项目实战修改密码

图标是使用uview里面的图标&#xff0c;icfont也可以 以下是所有代码 <template><view><!-- 密码三个 --><view class"password" v-for"(item,index) in userList"><view class"contentuser"><view class&qu…...

linux系统---防火墙拓展

目录 一、iptables 1.基本语法 2.四表五链——重点记忆 2.1四表 2.2五链 2.3总结 3.iptables选项示例 3.1 -Z 清空流量计数 3.2 -P 修改默认规则 3.3 -D 删除规则 3.4 -R 指定编号替换规则 4.白名单 5.通用匹配 6.示例 6.1添加回环网卡 6.2可以访问端口 6.3 主…...

就业的二三事

先说一下当前本人的情况&#xff1a;双非本一&#xff0c;研二在读&#xff0c;一篇图像处理方面的sci一区&#xff08;二作&#xff09;&#xff0c;日常工作语言为python&#xff0c;有过一段开源实习。要开始准备实习了&#xff0c;发个帖子记录一下自己所收集的信息。 前几…...

Go语言必知必会100问题-05 接口污染

接口污染 在Go语言中&#xff0c;接口是我们设计和编写代码的基石。然而&#xff0c;像很多概念一样&#xff0c;滥用它是不好的。接口污染是指用不必要的抽象来编写代码&#xff08;刻意使用接口&#xff09;&#xff0c;使得代码更难以理解。这是具有不同习惯&#xff0c;特…...

FastBee商业版本源码获取下载

一、系统功能 系统功能功能说明开源版本商业版本产品管理产品详情、产品物模型、产品分类、设备授权、产品固件支持支持设备管理设备详情、设备分组、设备日志、设备分享、设备实时控制、实时状态、数据监测支持支持物模型管理属性&#xff08;设备状态和监测数据&#xff09;…...

Java实战:Spring Boot集成Elasticsearch全文搜索引擎

本文将详细介绍如何在Spring Boot应用程序中集成Elasticsearch全文搜索引擎。我们将探讨Elasticsearch的基本概念&#xff0c;以及如何使用Spring Boot和Spring Data Elasticsearch模块来实现全文搜索功能。此外&#xff0c;我们将通过具体的示例来展示如何在Spring Boot应用程…...

python 进程笔记二(通讯) (概念+示例代码)

1、为什么要掌握进程间通信 Python代码效率由于受制于GIL全局锁限制&#xff0c;多线程不能利用多核CPU来加速&#xff0c;而多进程方式却可以绕过GIL限制, 发挥多CPU加速的优势&#xff0c;达到提高程序的性能的目的。 然而进程间通信却是不得不考虑的问题。 进程不同于线程&a…...

电机控制-----电机极对数,相电感,相电阻以及磁链常数的测量

电机控制-----电机极对数&#xff0c;相电感&#xff0c;相电阻以及磁链常数的测量 我们在做电机控制的时候&#xff0c;拿到一个电机首先要知道它的参数&#xff0c;然后才能进行相应的开发&#xff0c;我这里介绍的是通过平常常用的手段去获得电机的参数&#xff1a;极对数&…...

SQL注入之oracle注入+SQLbypass+sqlmap实战

学习路还很长&#xff0c;切莫轻言放弃&#xff01; 目录 Oracle数据库介绍 Oracle数据库和MySQL数据库的差别 Oracle数据库注入 SQLbypass姿势 sqlmap工具实战(kali自带) Oracle数据库介绍 Oracle数据库是全球最知名的关系型数据库管理系统&#xff08;RDBMS&#xff09…...

【GPTs分享】GPTs分享之Write For Me

Write For Me 是一个专门定制的GPT版本&#xff0c;旨在为用户提供高质量的文本内容创作服务。它适用于各种写作需求&#xff0c;从商业计划、学术文章到创意故事等。下面是从简介、主要功能、使用案例、优点和局限性几个方面对Write For Me 的详细介绍。 简介 Write For Me …...

css4浮动+清除浮动

浮动 一.常见网页布局1.三种布局方式2.布局准则 二.浮动&#xff08;float&#xff09;1.好处2.概念3.三大特性4.使用5.常见网页布局模板6.注意点 三.清除浮动1.why2.本质3.语法4.四种way&#xff08;后三个都是给父级添加&#xff09;清除浮动总结 一.常见网页布局 1.三种布局…...

外包干了3个月,技术倒退明显...

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…...

STM32控制数码管从0显示到99

首先 先画电路图吧&#xff01;打开proteus&#xff0c;导入相关器件&#xff0c;绘制电路图。如下&#xff1a;&#xff08;记得要保存啊&#xff01;发现模拟一遍程序就自动退出了&#xff0c;有bug&#xff0c;我是解决不了&#xff0c;所以就是要及时保存&#xff0c;自己重…...

CefFlashBrowser:终极Flash浏览器解决方案,轻松玩转经典Flash游戏与课件

CefFlashBrowser&#xff1a;终极Flash浏览器解决方案&#xff0c;轻松玩转经典Flash游戏与课件 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否还在为无法打开珍藏的Flash游戏而烦…...

Pixel Aurora Engine效果展示:像素极光视觉系统渲染的星际战舰系列

Pixel Aurora Engine效果展示&#xff1a;像素极光视觉系统渲染的星际战舰系列 1. 像素极光引擎简介 Pixel Aurora Engine是一款基于AI扩散模型的高端绘图工作站&#xff0c;专为像素艺术创作而设计。它采用独特的复古像素游戏风格界面&#xff0c;通过先进的AI技术将文字描述…...

AI读脸术多国面孔适配:跨种族识别优化部署实战

AI读脸术多国面孔适配&#xff1a;跨种族识别优化部署实战 1. 引言 你有没有遇到过这样的情况&#xff1a;一个在亚洲人脸识别上表现不错的AI模型&#xff0c;拿到一张欧洲人或非洲人的照片时&#xff0c;识别结果就开始"犯迷糊"了&#xff1f;性别判断出错&#x…...

手把手教你搞定Pico企业版串流:从‘Pico互联’安装到解决手势追踪失效问题

企业版Pico串流开发实战&#xff1a;破解手势追踪失效的完整方案 当你在Pico企业版设备上进行Unreal Engine开发时&#xff0c;是否遇到过这样的困境&#xff1a;明明按照官方文档操作&#xff0c;PC串流却始终无法建立连接&#xff1f;更令人抓狂的是&#xff0c;好不容易解决…...

Ostrakon-VL-8B效果展示:看AI如何从店铺图片中识别问题与机会

Ostrakon-VL-8B效果展示&#xff1a;看AI如何从店铺图片中识别问题与机会 1. 引言&#xff1a;当AI成为你的店铺巡检专家 想象一下这样的场景&#xff1a;你是一家连锁超市的运营经理&#xff0c;每天需要检查数十家门店的货架陈列、商品摆放和卫生状况。传统方法需要派遣大量…...

实测分享:圣女司幼幽-造相Z-Turbo生成高质量角色图片案例

实测分享&#xff1a;圣女司幼幽-造相Z-Turbo生成高质量角色图片案例 1. 引言&#xff1a;当AI画笔遇上经典角色 如果你是《牧神记》的读者&#xff0c;或者对国风仙侠角色情有独钟&#xff0c;那么“圣女司幼幽”这个名字一定不会陌生。她清冷孤傲、手持长剑的形象早已深入人…...

Java程序员如何入门音视频开发

对于Java程序员来说&#xff0c;他们缺乏参与音频和视频项目的经验。如何快速开始&#xff1f;你需要立即学习C吗&#xff1f;答案是否定的。 成功的关键在于循序渐进&#xff0c;从扎实的理论基础入手。第一步是学习多媒体基础理论。一本名为“多媒体基础概论”的教科书&#…...

jsontop.cn使用全攻略:免费无广告的在线工具站,电脑手机通用

你是否经常遇到这些问题&#xff1a; 拿到一堆杂乱 JSON 看不懂&#xff0c;想格式化却不会&#xff1f;需要转 Base64、算 MD5、转时间戳&#xff0c;却要装复杂软件&#xff1f;想测试正则、预览 HTML&#xff0c;还要搭环境、找插件&#xff1f;网上工具全是广告&#xff0…...

BAGEL终极指南:解密多模态AI模型的三大核心组件协同机制

BAGEL终极指南&#xff1a;解密多模态AI模型的三大核心组件协同机制 【免费下载链接】Bagel BAGEL是一个开源的多模态基础模型&#xff0c;拥有70亿个活跃参数&#xff08;总共140亿个&#xff09;&#xff0c;在大规模交错的多模态数据上进行了训练。BAGEL在标准的多模态理解排…...

别再纠结Copilot了!手把手教你用CodeGPT插件在IDEA里免费接入DeepSeek Coder

告别Copilot依赖&#xff1a;用DeepSeek CoderCodeGPT打造免费智能编程环境 在代码补全工具领域&#xff0c;GitHub Copilot长期占据主导地位&#xff0c;但其每月10美元的订阅费用让许多独立开发者和小团队望而却步。今天我要分享的这套方案&#xff0c;不仅完全免费&#xf…...