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

代码随想录day16

513.找树左下角的值

//迭代法中左视图的最后一位

    int findBottomLeftValue(TreeNode* root) {int result = 0;queue<TreeNode*> qe;if(root == nullptr) return result;qe.push(root);vector<int> lefts;while(!qe.empty()){int sz = qe.size();vector<int> tmp;for(int i = 0; i < sz; i++){TreeNode* nd = qe.front();qe.pop();tmp.push_back(nd->val);if(nd->left) qe.push(nd->left);if(nd->right) qe.push(nd->right);}lefts.push_back(tmp[0]);}result = lefts[lefts.size()-1];return result;}

//递归法,保证左侧优先遍历,注意回溯

    int maxDepth = INT_MIN;int result;void traverse(TreeNode*node, int depth){if(node->left == nullptr && node->right == nullptr){if(depth > maxDepth){maxDepth = depth;result = node->val;}return;}if(node->left){traverse(node->left, depth+1);}if(node->right){traverse(node->right, depth+1);}return;}

111.路径总和

    bool traverse(TreeNode* node, int target){if(node->left == nullptr && node->right == nullptr){if(target == node->val){return true;}else{return false;}}if(node->left){if(traverse(node->left, target - node->val)){return true;}}if(node->right){if(traverse(node->right, target - node->val)){return true;}}return false;}bool hasPathSum(TreeNode* root, int targetSum) {if(root == nullptr) return false;return traverse(root, targetSum);}

113.路径之和ii

    vector<vector<int>> result;vector<int> path;void traverse(TreeNode* node, int target){if(node->left == nullptr && node->right == nullptr){if(target == node->val){path.push_back(node->val);result.push_back(path);path.pop_back();}return;}if(node->left){path.push_back(node->val);traverse(node->left, target - node->val);path.pop_back();}if(node->right){path.push_back(node->val);traverse(node->right, target - node->val);path.pop_back();}return;}vector<vector<int>> pathSum(TreeNode* root, int targetSum) {if(root == nullptr) return result;traverse(root, targetSum);return result;}

106.从中序与后序遍历序列构造二叉树,需二刷

需记住中序,后序分割后的左右子串数量一致

    TreeNode* traverse(vector<int>& inorder, vector<int>& postorder){if(inorder.size() == 0 || postorder.size() == 0){return nullptr;}int rootval = postorder[postorder.size()-1];TreeNode* root = new TreeNode(rootval);if(postorder.size() == 1){return root;}int dim = 0;for(int i = 0; i < inorder.size(); i++){if(inorder[i] == rootval){dim = i;}}vector<int> leftinorder(inorder.begin(), inorder.begin()+dim);vector<int> rightinorder(inorder.begin()+dim+1, inorder.end());postorder.resize(postorder.size()-1);vector<int> leftpostorder(postorder.begin(), postorder.begin()+leftinorder.size());vector<int> rightpostorder(postorder.begin()+leftinorder.size(), postorder.end());root->left = traverse(leftinorder, leftpostorder);root->right = traverse(rightinorder, rightpostorder);return root;}TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {if(inorder.size() == 0 || postorder.size() == 0){return nullptr;}return traverse(inorder, postorder);}

105.从前序与中序遍历序列构造二叉树

TreeNode* traverse(vector<int>& preorder, vector<int>& inorder){if(preorder.size() == 0 || inorder.size() == 0){return nullptr;}int rootval = preorder[0];TreeNode* root = new TreeNode(rootval);if(preorder.size() == 1){return root;}int dim = 0;for(;dim < inorder.size(); dim++){if(inorder[dim] == rootval){break;}}vector<int> leftinorder(inorder.begin(), inorder.begin()+dim);vector<int> rightinorder(inorder.begin()+dim+1, inorder.end());preorder.erase(preorder.begin());vector<int> leftpreorder(preorder.begin(),preorder.begin()+leftinorder.size());vector<int> rightpreorder(preorder.begin()+leftinorder.size(),preorder.end());root->left = traverse(leftpreorder, leftinorder);root->right = traverse(rightpreorder, rightinorder);return root;}TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.size() == 0 || inorder.size() == 0){return nullptr;}return traverse(preorder, inorder);}

相关文章:

代码随想录day16

513.找树左下角的值 //迭代法中左视图的最后一位 int findBottomLeftValue(TreeNode* root) {int result 0;queue<TreeNode*> qe;if(root nullptr) return result;qe.push(root);vector<int> lefts;while(!qe.empty()){int sz qe.size();vector<int> tmp…...

常见的软件测试模型及特点

软件测试模型有多种&#xff0c;常见的包括以下几种&#xff0c;每种模型都有其特点和适用场景&#xff1a; 1. V 模型&#xff08;V-Model&#xff09; 特点&#xff1a; 测试和开发并行进行&#xff0c;开发的每个阶段都有对应的测试活动。适用于需求明确、开发过程较规范的…...

tailwindcss学习01

系列教程 01 入门 02 vue中接入 入门 # 注意使用cmd不要powershell npm init -y # 如果没有npx则安装 npm install -g npx npm install -D tailwindcss3.4.17 --registry http://registry.npm.taobao.org npx tailwindcss init修改tailwind.config.js /** type {import(tai…...

C语言复杂度分析

文章目录 一 算法效率评估第一,设计可靠的解法:第二,优化解的效率:二 迭代与递归迭代for 循环递归递归和迭代区别一 算法效率评估 第一,设计可靠的解法: 算法需要能够在规定的输入范围内,准确无误地求解问题,确保其结果的正确性和稳定性。这是算法设计的基本要求。 …...

DeepSeek服务器繁忙 多种方式继续优雅的使用它

前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”&#xff0c;尝试过了多次重新生成后&#xff0c;还是如此。之前DeepSeek官网连续发布2条公告称&#xff0c;DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…...

Bootstrap Blazor UI 中 <Table> 组件 <TableColumn> 使用备忘01:EF Core 外码处理

应用场景&#xff1a;将外码转换为对应的文本进行显示、编辑。 例如&#xff0c;有一个【用户】表&#xff0c;其中有一个【用户类型ID】字段&#xff1b;另有一个【用户类型】表&#xff0c;包含【ID】、【名称】等字段。现在要求在 <Table> 组件显示列表中&#xff0c…...

云原生数据抽象与弹性加速:Fluid开源系统的技术解析

在云计算、大数据和人工智能技术迅猛发展的背景下&#xff0c;云原生应用的数据处理和存储需求日益增长。南京大学顾荣教授及其团队开发的Fluid开源系统&#xff0c;旨在解决云原生环境中数据密集型应用面临的挑战&#xff0c;如计算存储分离、数据本地化、无状态服务与有状态计…...

【Python爬虫(29)】爬虫数据生命线:质量评估与监控全解

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

VSCode AI提效工具,通义灵码前端开发体验

安装 安装依旧很简单&#xff0c;vs code拓展插件中搜索就出来了&#xff0c;记住下边这个图标。 亮点 新接入了deepseek-v3\deepseek-r1模型&#xff0c;不仅支持智能问答&#xff0c;而且增加了AI程序员&#xff0c;可以直接按照完成编码任务&#xff0c;修改优化代码&am…...

在实时大数据处理中如何平衡延迟和吞吐量

在实时大数据处理中&#xff0c;平衡延迟和吞吐量是一个至关重要的挑战。以下是一些实用的策略和技巧&#xff0c;有助于在这两者之间找到最佳平衡点&#xff1a; 一、技术层面的平衡策略 并行处理&#xff1a; 通过同时处理多个任务来提高吞吐量。在实时大数据处理环境中&am…...

一款开源可独立部署的知识管理工具!!

今天给大家介绍一款开源的知识管理工具——云策文档。 介绍 该系统通过独立的知识库空间&#xff0c;结构化地组织在线协作文档&#xff0c;实现知识的积累与沉淀&#xff0c;促进知识的复用与流通。同时支持多人协作文档。 云策文档设计了明确的权限管理&#xff0c;方便文档…...

罗德与施瓦茨SMB100A,一款卓越的中档模拟射频/微波信号源

罗德与施瓦茨R&S SMB100A 微波信号发生器 型  号&#xff1a;SMB100A 名  称&#xff1a;微波信号发生器 品  牌&#xff1a;罗德与施瓦茨(R&S) 分  类&#xff1a;射频测试设备 > 射频信号源 > 矢量信号源 产品属性&#xff1a;主机 简  述&…...

java毕业设计之医院门诊挂号系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的医院门诊挂号系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 医院门诊挂号系统的主要使用者…...

【Scrapy】Scrapy教程7——存储数据

上一节我们对爬虫程序的默认回调函数parse做了改写,提取的数据可以在Scrapy的日志中打印出来了,光打印肯定是不行的,还需要把数据存储,数据可以存到文件,也可以存到数据库,我们一一来看。 存储数据到文件 首先我们看看如何将数据存储到文件,在讲[[【Scrapy】Scrapy教程…...

QILSTE H4-108TCG/5M高亮翠绿光LED灯珠 发光二极管LED

H4-108TCG/5M&#xff1a;高亮纯绿光LED的复杂特性与突发性挑战 在现代电子设备的复杂世界中&#xff0c;H4-108TCG/5M型号的高亮纯绿光LED以其独特的参数和复杂的特性脱颖而出。这款LED不仅在尺寸上做到了极致精巧&#xff0c;还在光电参数、可靠性测试和实际应用中展现出令人…...

Python中numpy.loadtxt()函数的用法

numpy模块的loadtxt()函数用于快速读取简单格式文件的内容&#xff0c;常用于csv文件的读取。 1 loadtxt()函数的格式 loadtxt()函数的格式如图1所示&#xff0c;该函数的返回值是读取到的数据&#xff0c;其类型为numpy.ndarray。 图1 loadtxt()函数的格式 其中&#xff0c…...

Windows系统安装GPU驱动/CUDA/cuDNN

1、驱动安装步骤 1.1下载驱动 通过浏览器访问Download The Official NVIDIA Drivers | NVIDIA 1.2安装驱动 1.3检查 打开【设备管理器】—【显示适配器】 2、CUDA安装步骤 2.1下载CUDA 官网链接CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA 开发者 2.2安装CUDA 3、cuDN…...

nessus kali 卸载

安装请看这篇Nessus漏扫工具的安装与使用&#xff08;Windows与Linux&#xff09;_nessus license key-CSDN博客 Download Tenable Nessus | Tenable 离线安装 Tenable Nessus &#xff08;Tenable Nessus 10.8&#xff09; systemctl stop nessusd Remove Nessus Run the …...

使用Geotools读取DEM地形数据实战-以湖南省30米数据为例

目录 前言 一、DEM地形数据介绍 1、DEM数据简介 2、DEM应用领域 3、QGIS中读取DEM数据 二、GeoTools解析地形 1、Maven中依赖引用 2、获取数据基本信息 三、总结 前言 随着全球数字化进程的加速&#xff0c;各类地理空间数据呈爆炸式增长&#xff0c;DEM 数据作为其中的…...

基于WebGIS技术的校园地图导航系统架构与核心功能设计

本文专为IT技术人员、地理信息系统&#xff08;GIS&#xff09;开发者、智慧校园解决方案架构师及相关领域的专业人士撰写。本文提出了一套基于WebGIS技术的校园地图导航系统构建与优化方案&#xff0c;旨在为用户提供高效、智能、个性化的导航体验。如需获取校园地图导航系统技…...

别再手动写Dockerfile了!Docker AI Toolkit 2026自动生成AI应用容器镜像,支持37种框架+12类硬件加速器,3步完成交付

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Docker AI Toolkit 2026&#xff1a;重新定义AI容器化交付范式 Docker AI Toolkit 2026 是面向生产级 AI 应用的一体化容器化开发套件&#xff0c;深度融合模型编译、硬件感知调度与可信推理链路验证能…...

从特斯拉到宝马,车企为何偏爱MapBox?聊聊它的自动驾驶地图与AI导航SDK

从特斯拉到宝马&#xff0c;车企为何偏爱MapBox&#xff1f;聊聊它的自动驾驶地图与AI导航SDK 当你在宝马iX的曲面屏上看到实时渲染的3D立交桥模型时&#xff0c;或是驾驶Rivian电动皮卡穿越荒漠却依然能获得精准的充电站推荐时&#xff0c;背后很可能都站着同一个技术推手——…...

Clang在Dev-C++中工作正常,但运行时报错怎么办

我理解您的问题&#xff1a;您在Dev-C中配置了Clang编译器&#xff0c;编译过程正常&#xff08;没有报错&#xff09;&#xff0c;但在运行生成的可执行文件时出现了错误。这是一个常见的开发问题&#xff0c;通常源于运行时错误或环境配置问题。下面我将一步步帮助您诊断和解…...

Flash内容复活术:3分钟让旧游戏和课件在现代电脑上重生 [特殊字符]

Flash内容复活术&#xff1a;3分钟让旧游戏和课件在现代电脑上重生 &#x1f60a; 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 还在为无法玩经典Flash游戏而烦恼吗&#xff1f;CefFlas…...

Redis 主从复制机制详解

Redis 主从复制机制详解 Redis作为高性能的键值存储系统&#xff0c;其主从复制机制是实现数据高可用和负载均衡的核心技术之一。通过主从复制&#xff0c;Redis可以将主节点的数据实时同步到多个从节点&#xff0c;从而提升系统的容灾能力和读取性能。本文将深入解析Redis主从…...

AI生成技术架构图:excalidraw-diagram-skill实现视觉验证与自动化设计

1. 项目概述与核心价值最近在折腾AI编程助手&#xff0c;发现一个挺有意思的痛点&#xff1a;让AI画技术架构图。你肯定也遇到过&#xff0c;让Claude Code或者Cursor这类工具画个系统流程图&#xff0c;它要么给你整一堆规规矩矩的方框加箭头&#xff0c;要么生成的Excalidraw…...

保姆级避坑指南:在Ubuntu 20.04上为UR5机械臂配置ROS Noetic和MoveIt(从仿真到实物)

UR5机械臂ROS开发避坑实战&#xff1a;从环境配置到实物联调全指南 如果你正在Ubuntu 20.04上为UR5机械臂配置ROS Noetic和MoveIt环境&#xff0c;大概率已经体会过依赖地狱、版本冲突和网络配置的折磨。这份指南不会重复官方文档的基础操作&#xff0c;而是聚焦那些让开发者彻…...

MySQL数据库教程

MySQL官方参考手册 数据库入门 数据库和表的基本操作 数据操作 单表查询 多表操作 索引 视图 事务 数据库编程 数据库管理与维护 数据库设计 数据库建模 The --host option (short form -h) tells the mysql client program the hostname or IP address of the MyS…...

终极指南:Viper配置键值存储如何快速集成分布式配置中心

终极指南&#xff1a;Viper配置键值存储如何快速集成分布式配置中心 【免费下载链接】viper Go configuration with fangs 项目地址: https://gitcode.com/gh_mirrors/vi/viper Viper是Go语言生态中功能强大的配置管理工具&#xff0c;被Hugo、Docker Notary等众多知名项…...

Phi-3.5-Mini-Instruct部署案例:高校AI教学实验平台轻量化部署方案

Phi-3.5-Mini-Instruct部署案例&#xff1a;高校AI教学实验平台轻量化部署方案 1. 项目背景与价值 在高校AI教学实验场景中&#xff0c;传统大模型部署面临三大痛点&#xff1a; 硬件门槛高&#xff1a;动辄需要数十GB显存的专业显卡部署复杂度高&#xff1a;需要专业IT人员…...