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

代码随想录二刷 Day23

669. 修剪二叉搜索树

找到小数字的右子树与大数字左子树必须要重新检查一遍然后让root的左右直接指向return的左右节点;

class Solution {
public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root == NULL) return NULL;if (root->val < low) {// root->left = trimBST(root->right, low, high);TreeNode* right = trimBST(root->right, low, high);return right;}if (root->val > high) {TreeNode* left = trimBST(root->left, low, high);return left;}root->left = trimBST(root->left, low, high);root->right = trimBST(root->right, low, high);return root;}
};

108. Convert Sorted Array to Binary Search Tree

这个题尝试把 root->left = traversal(nums, left, mid - 1); 里面的left改成0但是不行,因为left和right的数值在迭代的过程中会被mid动态替换;

class Solution {
public:// 左闭右闭区间[left, right]TreeNode* traversal(vector<int>& nums, int left, int right) {if (left > right) return NULL; //这句话是因为下面mid可能减一或者加一,然后那mid减完之后还可能变成left或者right,所下面的left和right不能改成0和nums.size() -1;int mid = left + (right - left)/2;TreeNode* root = new TreeNode(nums[mid]);root->left = traversal(nums, left, mid - 1); root->right = traversal(nums, mid + 1, right);return root;}TreeNode* sortedArrayToBST(vector<int>& nums) {TreeNode * root = traversal(nums, 0, nums.size()-1);return root;}
};

538.把二叉搜索树转换为累加树  

注意要右中左来遍历二叉树, 中节点的处理逻辑就是让cur的数值加上前一个节点的数值,就是反中序来做累加;

class Solution {
private:int pre = 0; // 记录前一个节点的数值void traversal(TreeNode* cur) { // 右中左遍历if (cur == NULL) return;traversal(cur->right);cur->val += pre;pre = cur->val;traversal(cur->left);}
public:TreeNode* convertBST(TreeNode* root) {traversal(root);return root;}
};

相关文章:

代码随想录二刷 Day23

669. 修剪二叉搜索树 找到小数字的右子树与大数字左子树必须要重新检查一遍然后让root的左右直接指向return的左右节点&#xff1b; class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root NULL) return NULL;if (root->val < low…...

Ubuntu `apt` 报错 “Errors were encountered while processing: base-passwd“ 的解决方法

Ubuntu apt 更新时出现报错&#xff1a; Setting up base-passwd (3.5.52build1) ... Changing home-directory of irc from /var/run/ircd to /run/ircd 1 changes have been made, rewriting files Writing passwd-file to /etc/passwd Error making backupfile /etc/passwd…...

XXL-JOB分布式任务调度

XXL-JOB分布式任务调度 ​ 在实际项目中&#xff0c;为了降低耦合&#xff0c;通常会把定时任务的逻辑单独抽离出来&#xff0c;构建成一个新的工程。也有可能需要定时任务实现高可用&#xff0c;组建成集群&#xff0c;提高容错率。 ​ 那么问题也就来了。既然定时任务是多个…...

加拿大人工智能数据搜索平台【Secoda】完成1400万美元A轮融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于加拿大多伦多的人工智能数据搜索平台【Secoda】今日宣布已完成1400万美元A轮融资。 本轮融资由Craft Ventures领投&#xff0c;参与投资的投资机构有Abstract Ventures、现有投资者YCombi…...

less与sass

1.变量&#xff1a; Less: my-color: #ff0000;.container {background-color: my-color; } Sass:$my-color: #ff0000;.container {background-color: $my-color; } 在这点上&#xff0c;Less和Sass的变量概念基本相同&#xff0c;都是以声明的方式存储值&#xff0c;然后在…...

c-const修饰指针-day16

...

已解决: Go Error: no Go files in /path/to/directory问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…...

2022年6月和7月的工作经历

6月 3D打标软件 3D打标软件&#xff0c;要求在Open3d上加几个2D文字。大致有如下几个方案&#xff1a; 依葫芦画瓢&#xff0c;但O3DVisualizer派生于gui::Window&#xff0c;我的程序派生于Visualizer。工作量不小。 利用OpenGL输出文字&#xff0c;Baidu的两种方法一个编…...

【图像处理】SIFT角点特征提取原理

一、说明 提起在OpenCV中的特征点提取&#xff0c;可以列出Harris&#xff0c;可以使用SIFT算法或SURF算法来检测图像中的角特征点。本篇围绕sift的特征点提取&#xff0c;只是管中窥豹&#xff0c;而更多的特征点算法有&#xff1a; Harris & Stephens / Shi–Tomasi 角点…...

flutter开发实战-应用更新apk下载、安装apk、启动应用实现

flutter开发实战-应用更新apk下载、安装apk、启动应用实现 在开发过程中&#xff0c;经常遇到需要更新下载新版本的apk文件&#xff0c;之后进行应用更新apk下载、安装apk、启动应用。我们在flutter工程中实现下载apk&#xff0c;判断当前版本与需要更新安装的版本进行比对判断…...

DispatcherServlet初始化之Spring容器创建1.0

一、前言 在SpringMVC框架中&#xff0c;DispatcherServlet扮演着非常重要的角色&#xff0c;它负责接收所有的HTTP请求并将其分发给相应的处理器。在DispatcherServlet的初始化过程中&#xff0c;会创建一个Spring容器来管理应用程序中的Bean。 二、步骤 1、加载配置文件&a…...

CSS的基础

CSS美化HTML&#xff0c;布局网页 CSS最大的价值&#xff1a;由HTML专注去做结构呈现&#xff0c;样式给CSS&#xff0c;结构&#xff08;HTML)与样式&#xff08;CSS&#xff09;相分离 CSS主要由选择器以及一条或多条声明 在<head></head>中实现CSS在<body…...

mathtype如何嵌入到word中?详细mathtype安装步骤教程

mathtype是一款功能特别强大的数学方式编辑软件&#xff0c;为用户提供各种强大的数学公式符号帮助用户进行计算&#xff0c;并且速度很快。有小伙伴知道mathtype如何嵌入到word中吗&#xff0c;这里小编就给大家详细介绍一下mathtype嵌入到word中的方法&#xff0c;有需要的小…...

云安全之访问控制的常见攻击及防御

访问控制攻击概述 访问控制漏洞即应用程序允许攻击者执行或者访问某种攻击者不具备相应权限的功能或资源。 常见的访问控制可以分为垂直访问控制、水平访问控制及多阶段访问控制 (上下文相关访问控制)&#xff0c;与其相应的访问控制漏洞为也垂直越权漏洞(普通用户可以访问或…...

Java编程技巧:跨域

目录 1、跨域概念2、后端CORS&#xff08;跨域资源共享&#xff09;配置原理3、既然请求跨域了&#xff0c;那么请求到底发出去没有&#xff1f;4、通过后端CORS&#xff08;跨域资源共享&#xff09;配置解决跨域问题代码4.1、SpringBoot&#xff08;FilterRegistrationBean&a…...

react create-react-app 配置less

环境信息&#xff1a; create-react-app:v5 react:18.2.0 node:18.16.0 如果你不必须使用 less 建议直接使用scss。 因为less配置会遇到很多问题。 配置less过程&#xff1a; 如果你只需要 sass的话&#xff0c;就可以直接使用sass。因为默认配置了scss。 npm、yarn、cnpm、…...

树的表示——孩子兄弟表示法

从图中可以看出&#xff0c;树的每个结点&#xff0c;都有不确定的指向他们的孩子的节点&#xff0c;如果我们定义这样一个结构体来便是数的结构的话&#xff1a; struct TreeNode { int val; struct TreeNodep1; struct TreeNodep1; … }; 是不能够表示一棵树的&#xff0c;因…...

Windows11安装MySQL8.1

安装过程中遇到任何问题均可以参考(这个博客只是单纯升级个版本和简化流程) Windows安装MySQL8教程-CSDN博客 到官网下载mysql8数据库软件 MySQL :: Download MySQL Community Server 下载完后,解压到你需要安装的文件夹 其中的配置文件内容了如下 [mysqld]# 设置3306端口po…...

Linux编程——经典链表list_head

1. 关于list_head struct list_head是Linux内核定义的双向链表&#xff0c;包含一个指向前驱节点和后继节点的指针的结构体。其定义如下&#xff1a; struct list_head {struct list_head *next, *prev; //双向链表&#xff0c;指向节点的指针 };1.1 链表的定义和初始化 有两…...

基于51单片机NEC协议红外遥控发送接收仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

基于51单片机NEC协议红外遥控发送接收仿真设计 讲解视频1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机NEC协议红外遥控发送接收仿真设计 51单片机红外发送接收仿真设计( proteus仿真程序原理图报告讲解视频…...

嘎嘎降AI全平台综合评测:2026年知网维普万方Turnitin达标率完整深度分析报告

嘎嘎降AI全平台综合评测&#xff1a;2026年知网维普万方Turnitin达标率完整深度分析报告 总有人问我选哪个降AI工具&#xff0c;这篇文章把主流的几款对比清楚。 综合推荐嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元&#xff0c;99.26%达标率。不同…...

ElevenLabs声音库调优秘技:如何用API+Prompt工程将TTS自然度提升67%(附2024最新声纹参数表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务&#xff0c;其声音库&#xff08;Voice Library&#xff09;涵盖多语种、多风格的预训练语音模型&#xff0c;适用于播客、有…...

Silk-v3-decoder:打破即时通讯音频格式壁垒的专业解码方案

Silk-v3-decoder&#xff1a;打破即时通讯音频格式壁垒的专业解码方案 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...

机器人抓取仿真与数据分析:从PyBullet集成到抓取性能评估

1. 项目概述与核心价值最近在机器人控制与仿真领域&#xff0c;一个名为PyroMind-Dynamics/openclaw-tracer的项目引起了我的注意。乍一看这个标题&#xff0c;它像是一个典型的GitHub仓库名&#xff0c;由组织名“PyroMind-Dynamics”和项目名“openclaw-tracer”组成。作为一…...

memtest_vulkan:专业级Vulkan GPU显存稳定性测试工具全解析

memtest_vulkan&#xff1a;专业级Vulkan GPU显存稳定性测试工具全解析 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 在GPU计算和图形处理日益重要的今天&…...

NoSleep:告别Windows意外休眠的终极解决方案,让你的电脑始终保持清醒状态

NoSleep&#xff1a;告别Windows意外休眠的终极解决方案&#xff0c;让你的电脑始终保持清醒状态 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 你是否经历过视频会议演示到一…...

如何3步快速掌握DataCleaner:开源数据质量工具完全指南

如何3步快速掌握DataCleaner&#xff1a;开源数据质量工具完全指南 【免费下载链接】DataCleaner The premier open source Data Quality solution 项目地址: https://gitcode.com/gh_mirrors/dat/DataCleaner 你是否曾为数据中的错误和缺失而烦恼&#xff1f;DataClean…...

当代酷刑:如厕等信号

如厕等信号&#xff0c;属于当代十大酷刑之一。作为社会观察理性分析的结合体&#xff0c;今天&#xff0c;我想写一些这物理世界的墙&#xff0c;也是这消费世界的墙。你有没有过这样的感受&#xff1f;不管你家里换了多么厉害的宽带&#xff0c;多么高端前沿的路由器&#xf…...

魔百和CM311-1A刷机后体验:S905L3A芯片+安卓9,到底能装哪些好玩的应用?

魔百和CM311-1A刷机后应用生态全攻略&#xff1a;释放S905L3A芯片的隐藏潜力 当你的魔百和CM311-1A成功刷入纯净安卓9系统后&#xff0c;这台搭载S905L3A芯片的设备便从一台普通电视盒子蜕变为开放式的娱乐中心。ADB功能默认开启的状态下&#xff0c;它的可能性只受限于你的想…...

手把手教你用rtsp-simple-server和FFmpeg在Windows上搭建个人视频流媒体服务器(保姆级教程)

手把手教你用rtsp-simple-server和FFmpeg在Windows上搭建个人视频流媒体服务器 在数字化生活日益普及的今天&#xff0c;个人视频流媒体服务器的需求正在快速增长。无论是想搭建家庭监控系统原型&#xff0c;还是为开发项目创建测试环境&#xff0c;亦或是单纯出于技术爱好探索…...