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

分冶算法 剑指 07 重建二叉树 排序算法:剑指45 把数组排成最小的数 10-I 斐波那契数列

在这里插入图片描述
来记录几个注意事项
1.vector容器里利用find()函数
不同于map(map有find方法),vector本身是没有find这一方法,其find是依靠algorithm来实现的。
所以要包含头文件


#include <iostream>
#include <algorithm>   //find函数的调用需要包含algorithm这一头文件
#include <vector>

另外返回类型并不是int 类型的索引 iterator迭代器类型的

auto inroot=find(vector.begin(),vector.end(),val)//假设在int类型的vector容器里找值为val的位置

2.关于在vector容器里根据找寻到的位置进行切片,前面为新的vector容器,后面为一个新的vector容器
错误写法

vector inleft=inorder(inorder.begin(),inroot);
这里并不是赋值操作,利用赋值是不对的
正确写法

vector<int> inleft(inorder.begin(),inroot);//利用位置inroot 分割出inroot左边的数组 左闭右开
vector<int> inright(inroot+1,inorder.end());//利用位置inroot 分割出inroot右边的数组 左闭右开

解法:递归

class Solution {//前序 中左右//中序 左中右
public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.empty()||inorder.empty()) return nullptr;//1.根节点肯定是前序的第一个TreeNode* root=new TreeNode(preorder[0]);//2.在中序遍历中找一下根节点的位置 记住这个函数find(begin(),end(),val)auto inroot=find(inorder.begin(),inorder.end(),preorder[0]);//3.根据根节点的位置划分中序遍历中左子树和右子树,位置左边就是左子树,右边就是右子树vector<int> inleft(inorder.begin(),inroot);vector<int> inright(inroot+1,inorder.end());//4.根据中序遍历中左右子树的大小划分前序遍历数组int leftsize=inleft.size();vector<int> preleft(preorder.begin()+1,preorder.begin()+1+leftsize);//不能写成(1,leftsize+1)vector<int> preright(preorder.begin()+1+leftsize,preorder.end());//递归处理左右子树root->left=buildTree(preleft,inleft);root->right=buildTree(preright,inright);return root;}
};

在这里插入图片描述
思路:重新定义排序方式

sort(nums.begin(),nums.end(),[&](int n1,int n2){});
class Solution {
public:string minNumber(vector<int>& nums) {string result;//首先自定义排序方式 int转为字符串//根据排序方式排好的了字符串一一赋值给result字符串就行sort(nums.begin(),nums.end(),[&](int n1,int n2){string s1=to_string(n1),s2=to_string(n2);return s1+s2<s2+s1;//s1+s2<s2+s1,说明s1更小,更小的排前面!});for(auto& num:nums) result+=to_string(num);return result;}
};

在这里插入图片描述

class Solution {
public:int fib(int n) {if(n==0) return 0;if(n==1) return 1;int x=0,y=0,z=1;for(int i=2;i<=n;i++){x=y;y=z;z=(x+y)%1000000007;}return z;}
};

相关文章:

分冶算法 剑指 07 重建二叉树 排序算法:剑指45 把数组排成最小的数 10-I 斐波那契数列

来记录几个注意事项 1.vector容器里利用find&#xff08;&#xff09;函数 不同于map&#xff08;map有find方法&#xff09;&#xff0c;vector本身是没有find这一方法&#xff0c;其find是依靠algorithm来实现的。 所以要包含头文件 #include <iostream> #include <…...

Postgresql取消正在执行的任务或强制终止正在执行的任务

Postgresql取消正在执行的任务或强制终止正在执行的任务 要停止 PostgreSQL 数据库中当前正在执行的所有任务&#xff0c;可以使用以下方法&#xff1a; 使用 pg_cancel_backend 函数&#xff1a;连接到 PostgreSQL 数据库&#xff0c;并执行以下命令以停止所有正在执行的任务…...

【Linux】Centos7 的 Systemctl 与 创建系统服务 (shell脚本)

Systemctl systemctl 命令 # 启动 systemctl start NAME.service # 停止 systemctl stop NAME.service # 重启 systemctl restart NAME.service # 查看状态 systemctl status NAME.service # 查看所有激活系统服务 systemctl list-units -t service # 查看所有系统服务 syste…...

Redis集群Cluster搭建

Redis集群Cluster搭建 集群框架1、下载redis2.创建Cluster文件3.修改redis配置文件4.启动redis5.链接各个redis6.分配槽位7.添加从机节点&#xff08;备份Redis&#xff09;8.以集群方式登录9.使用开源Redis可视化客户端链接 集群框架 三个集群节点&#xff0c;每个节点有个副本…...

swing组件应用

1. 组件概述 &#xff08;1&#xff09; 说明 组件组成Java 的图形界面的各个元素&#xff0c;按照不同的功能&#xff0c;可分为 顶层容器、中间容器、基本组件。顶层容器为java.awt.Window的子类&#xff0c;有JFrame、JDialog等。中间容器和基础组件都为javax.swing.JCompo…...

Spring学习记录----十五、面向切面编程AOP+十六、Spring对事务的支持

十五、面向切面编程AOP IoC使软件组件松耦合。AOP让你能够捕捉系统中经常使用的功能&#xff0c;把它转化成组件。 AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff1a;面向切面编程&#xff0c;面向方面编程。&#xff08;AOP是一种编程技术&#xff09; …...

Color Correction (颜色校正)

介绍 在Unity中&#xff0c;Color Correction (颜色校正) 是一种用于调整场景或游戏画面颜色的技术。其中&#xff0c;Curves&#xff08;曲线&#xff09;和Saturation&#xff08;饱和度&#xff09;是常用的Color Correction工具。通过Curves&#xff0c;可以对RGB通道进行…...

Unity-缓存池

一、.基础缓存池实现 继承的Singleton脚本为 public class Singleton<T> where T : new() {private static T _instance;public static T GetIstance(){if (_instance null)_instance new T();return _instance;} } 1.PoolManager using System.Collections; using S…...

ubuntu samba 配置常见问题

samba配置&#xff1a; sudo vi /etc/samba/smb.conf [xxx 共享文件名] comment share folder browseable yes writable yes guest ok yes path /workdir/code/favarite create mask 0777 directory mask 0777 sudo /etc/init.d/smbd restart 重启smb服务 以上操作…...

vue3.3-TinyMCE:TinyMCE富文本编辑器基础使用

一、TinyMCE官网 GitHub - tinymce/tinymce TinyMCE中文文档中文手册 二、官网介绍 TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。同类程序有&#xff1a;UEditor、Kindeditor、Simditor、CKEditor、wangEditor、Suneditor、froala等等。 TinyMCE的优势&…...

基于以太坊+IPFS的去中心化数据交易方法及平台

自己的论文&#xff0c;哎费事 目录 基于以太坊IPFS的去中心化数据交易方法及平台 基于以太坊IPFS的去中心化数据交易方法及平台 摘要&#xff1a; 数据交易过程中存在数据权属不明和数据安全问题。本文开发了一种基于以太坊IPFS的去中心化数据交易方法及平台。方法包括&am…...

NestJS 的 拦截器 学习

拦截器会用到RxJs&#xff0c;所以在学习拦截器之前可以先了解一下它。 拦截器是使用Injectable()装饰器装饰的类并且实现了接口NestInterceptor。 拦截器受到 AOP(面向切面编程)技术的启发&#xff0c;具有如下的功能&#xff1a; 在方法执行之前/之后绑定额外的逻辑转换函…...

Spring AOP 中的代理对象是怎么创建出来的?

文章目录 1. AOP 用法2. 原理分析2.1 doCreateBean2.2 postProcessAfterInitialization2.3 getAdvicesAndAdvisorsForBean2.3.1 findCandidateAdvisors2.3.2 findAdvisorsThatCanApply2.3.3 extendAdvisors 2.4 createProxy 今天和小伙伴们聊一聊 Spring AOP 中的代理对象是怎么…...

解决@Scope(“prototype“)不生效的问题

目录 Scope(“prototype“)不生效Scope(“prototype“)正确用法——解决Bean多例问题 1.问题&#xff0c;Spring管理的某个Bean需要使用多例2.问题升级3. Spring给出的解决问题的办法&#xff08;解决Bean链中某个Bean需要多例的问题&#xff09; Scope(“prototype“)不生效 …...

Mybatis 知识点

Mybatis 知识点 1.1 Mybatis 简介 1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架支持定制化 SQL、存储过程及高级映射Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO…...

PHP中关于is,between,in等运算符的用法是什么?

我们学习了解了这么多关于PHP的知识&#xff0c;不知道你们对PHP中关于is&#xff0c;between&#xff0c;in等运算符的用法是什么&#xff1f;是否已经完全掌握了呢&#xff0c;如果没有&#xff0c;那就跟随本篇文章一起继续学习吧 相关推荐&#xff1a;关于PHP中的增删改如…...

2023-07-29:华清远见嵌入式2017年线下班:文件IO笔记

这里写目录标题 华清远见嵌入式2017年线下班&#xff1a;文件IO笔记文件权限文件IO文件创建和打开操作文件关闭操作出错处理创建设备文件 || create || 老师自己忘了文件读操作练习&#xff1a;计算文件的大小&#xff1f;文件写操作练习&#xff1a;打开file1和file2&#xff…...

2023年第四届“华数杯”数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&#xff0…...

Typescript第七章 处理错误(返回null,抛出异常,返回异常,Option类型)

第七章 处理错误 Typescript竭尽所能&#xff0c;把运行时异常转移到编译时。Typescript是功能丰富的系统&#xff0c;加上强大的静态和符号分析能力&#xff0c;包揽了大量辛苦的工作。 但是有些问题是无法避免的&#xff0c;比如网络和文件系统异常&#xff0c;解析用户输入…...

Qt库xcb问题

首先在~/.bashrc中加入 export QT_DEBUG_PLUGINS1然后看具体的报错 查看某个库链接的库&#xff1a; ldd libqxcb.so然后找到真正缺少的库&#xff0c;再在路径下搜索&#xff0c;然后建立软链接。 https://blog.csdn.net/LOVEmy134611/article/details/107212845 https://…...

告别恼人红叉!保姆级教程:用acme.sh给宝塔面板IP地址换上Let‘s Encrypt免费证书

从红叉到绿锁&#xff1a;零成本为宝塔面板IP地址部署可信SSL证书全指南 每次打开宝塔面板&#xff0c;那个刺眼的红色安全警告是否让你如鲠在喉&#xff1f;作为服务器管理员&#xff0c;我们比谁都清楚自签名证书的实际安全性&#xff0c;但浏览器固执的警告提示却让新手用户…...

STM32F4读写SD卡:填一填ST官方HAL库的坑

使用STM32读写SD卡在低功耗存储中的应用是比较常见的&#xff0c;但是网上大多数资料都是基于标准库或者基于寄存器的开发。随着嵌入式设备越来越复杂&#xff0c;使用HAL库能够大大降低开发者的学习成本&#xff0c;从而提高开发效率。近年来&#xff0c;ST官方主推以STM32Cub…...

分子对接盒子参数智能生成:GetBox-PyMOL-Plugin蛋白质结构分析专业指南

分子对接盒子参数智能生成&#xff1a;GetBox-PyMOL-Plugin蛋白质结构分析专业指南 【免费下载链接】GetBox-PyMOL-Plugin A PyMOL Plugin for calculating docking box for LeDock, AutoDock and AutoDock Vina. 项目地址: https://gitcode.com/gh_mirrors/ge/GetBox-PyMOL-…...

告别手动调参!用大津法(OTSU)实现8路灰度传感器的自适应巡线(附完整C代码)

告别手动调参&#xff01;用大津法实现8路灰度传感器的智能巡线方案 当你在电赛现场调试机器人巡线时&#xff0c;是否经历过这样的场景&#xff1a;刚在A场地调好的阈值参数&#xff0c;换到B场地就完全失灵&#xff1b;上午还能精准巡线的小车&#xff0c;下午因为光照变化就…...

像素语言·跨维传送门应用场景:高校外语教学AI助教落地实践

像素语言跨维传送门应用场景&#xff1a;高校外语教学AI助教落地实践 1. 引言&#xff1a;当像素冒险遇上语言学习 在高校外语教学领域&#xff0c;传统翻译工具往往显得过于机械和枯燥。学生们面对冰冷的界面和生硬的翻译结果&#xff0c;学习热情很容易被消磨。而像素语言跨…...

IntelliJ IDEA中SVN与Git版本管理的高效配置指南

1. 为什么需要版本管理工具&#xff1f; 如果你曾经因为误删代码而熬夜重写&#xff0c;或者因为团队协作时文件覆盖而崩溃&#xff0c;那你一定需要版本管理工具。想象一下&#xff0c;代码就像写作文时的草稿纸——每次修改都保留历史版本&#xff0c;随时可以回退到上周二下…...

Flutter项目打包未签名ipa的保姆级教程(含Xcode配置与常见错误解决)

Flutter项目打包未签名ipa的保姆级教程&#xff08;含Xcode配置与常见错误解决&#xff09; 当你完成了一个Flutter应用的开发&#xff0c;准备将其交付给第三方进行签名或部署到CI/CD流水线时&#xff0c;生成一个未签名的ipa文件是必经之路。对于刚接触iOS打包的Flutter开发者…...

手把手教你用UML用例图梳理业务流程(附真实项目案例)

实战指南&#xff1a;用UML用例图重构电商订单系统业务流程 1. 为什么用例图是需求分析的基石 在软件开发的混沌初期&#xff0c;当产品经理、开发者和业务方还在用各自的语言描述需求时&#xff0c;UML用例图就像一盏明灯&#xff0c;它能跨越专业术语的鸿沟&#xff0c;用可视…...

3步搞定YOLO人脸检测:从零到生产级应用的完整实践指南

3步搞定YOLO人脸检测&#xff1a;从零到生产级应用的完整实践指南 【免费下载链接】yolo-face YOLO Face &#x1f680; in PyTorch 项目地址: https://gitcode.com/gh_mirrors/yo/yolo-face YOLO人脸检测技术正在改变计算机视觉应用的开发方式&#xff0c;无论你是想构…...

局域网内Windows时间同步配置

本文详细介绍了如何配置NTP服务器和工作站计算机进行时间同步&#xff0c;包括在服务器上启用NTP服务&#xff0c;调整同步设置&#xff0c;以及在海康威视录像机上的应用。同时提醒注意防火墙配置问题。 一、配置NTP服务器 1、在局域网内找一台时间可靠的计算机或服务器 做为N…...