自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (1)
  • 收藏
  • 关注

原创 Follow Carl To Grow|【LeetCode】491.递增子序列,46.全排列,47.全排列 II

代码随想录Day28

2024-06-26 00:12:43 547

原创 Follow Carl To Grow|【LeetCode】93.复原IP地址,78.子集,90.子集II

代码随想录Day27

2024-06-25 23:07:38 380

原创 Follow Carl To Grow|【LeetCode】39. 组合总和,40.组合总和II,131.分割回文串

代码随想录Day25

2024-06-24 23:49:13 316

原创 Follow Carl To Grow|【LeetCode】 77. 组合,216.组合总和III, 17.电话号码的字母组合

代码随想录Day24

2024-06-24 22:44:33 562

原创 Follow Carl To Grow|【LeetCode】669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树

代码随想录Day23

2024-06-10 00:13:33 416

原创 Follow Carl To Grow|【LeetCode】235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点

代码随想录Day22

2024-06-09 18:37:53 324

原创 Follow Carl To Grow|【LeetCode】530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先

代码随想录Day21

2024-06-09 18:18:11 570 2

原创 Follow Carl To Grow|【LeetCode】654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

代码随想录Day20

2024-06-09 17:06:46 444

原创 Follow Carl To Grow|【LeetCode】513.找树左下角的值,112.路径总和,113.路径总和ii,106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历构造二叉树

代码随想录Day18

2024-06-09 16:15:30 428

原创 Follow Carl To Grow|【LeetCode】110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和

代码随想录Day17

2024-05-23 21:48:03 321

原创 Follow Carl To Grow|【LeetCode】104.二叉树的最大深度,559.n叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数

代码随想录Day16

2024-05-23 20:59:40 297

原创 Follow Carl To Grow|【LeetCode】102.层序遍历,226.翻转二叉树,101.对称二叉树

代码随想录Day15

2024-05-22 23:16:40 378

原创 Follow Carl To Grow|【LeetCode】144.二叉树的前序遍历,145.二叉树的后序遍历,94.二叉树的中序遍历

代码随想录Day14

2024-05-22 22:36:36 282

原创 Follow Carl To Grow|【LeetCode】239. 滑动窗口最大值,347.前 K 个高频元素

代码随想录Day13

2024-05-21 22:14:06 475

原创 Follow Carl To Grow|【LeetCode】20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

代码随想录Day11

2024-05-18 23:23:18 337

原创 Follow Carl To Grow|【LeetCode】232.用栈实现队列,225. 用队列实现栈

代码随想录Day10

2024-05-16 23:09:03 326

原创 Follow Carl To Grow|【LeetCode】28. 找出字符串中第一个匹配项的下标 ,459.重复的子字符串

代码随想录Day9

2024-05-16 22:31:37 325

原创 Follow Carl To Grow|【LeetCode】344.反转字符串,541. 反转字符串II,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串

代码随想录Day8

2024-05-15 23:40:08 490 2

原创 Follow Carl To Grow|【LeetCode】454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和

代码随想录Day7

2024-05-14 22:51:00 326

原创 Follow Carl To Grow|【LeetCode】242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

代码随想录Day6

2024-05-13 22:37:52 412

原创 Follow Carl To Grow|【LeetCode】24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II

代码随想录Day4

2024-05-12 17:53:18 462 1

原创 Follow Carl To Grow|【LeetCode】203.移除链表元素,707.设计链表,206.反转链表

代码随想录Day3

2024-05-12 16:18:40 350

原创 Follow Carl To Grow|【LeetCode】977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

代码随想录Day2

2024-05-12 13:41:50 141

原创 Follow Carl To Grow|【LeetCode】704. 二分查找,27. 移除元素

代码随想录Day1

2024-05-11 23:38:19 282 1

原创 Linux/C++系统编程 day15

移动语义后置++,–不能取地址,返回的是局部对象(右值)const左值引用称为万能引用, 无法区分出绑定的是左值还是右值编译器优化关掉编译优化-fno-elide-constructors移动语义是为了避免反复构造、析构持有资源的对象(不严格的来说,左值对应变量的存储位置,而右值对应变量的值本身。C++中右值可以被赋值给左值或者绑定到引用。类的右值是一个临时对象,如果没有被绑定到引用,在表达式结束时就会被废弃。于是我们可以在右值被废弃之前,移走它的资源进行废物利用,从而避免无意义

2021-01-21 08:50:34 182

原创 Linux/C++系统编程 day14

纯虚函数形式class 类名{public: virtual 返回类型 函数名(参数列表)=0;};作用设置纯虚函数的意义,就是让所有的类对象(主要是派生类对象)都可以执行纯虚函数的动作,但类无法为纯虚函数提供一个合理的缺省实现。所以类纯虚函数的声明就是在告诉子类的设计者,“你必须提供一个纯虚函数的实现,但我不知道你会怎样实现它”。抽象类一个类可以包含多个纯虚函数。只要类中含有(声明)一个纯虚函数,该类便为抽象类,用来作为接口一个抽象类只能作为基类来派生新类,

2021-01-19 13:54:08 171

原创 Linux/C++系统编程 day13

继承单继承下基类与派生类之间转化派生类适应于基类,派生类的对象能直接作用于基类对象所能应用的场合派生类对象赋值给基类对象基类引用绑定到派生类对象基类的指针指向派生类对象向上转型:安全,降维打击(派生类转为基类,上一辈)向下转型:很不安全,C++不支持,只能强转(基类转为派生类,下一辈)//不安全的向下转型Derived *pderived1 = static_cast<Derived *>(&base1);//安全的向下转型Base

2021-01-15 21:18:02 223

原创 Linux/C++系统编程 day12

标准库String底层实现方式1:深拷贝EC(eager copy)无论什么情况,都是采用拷贝字符串内容的方式解决,在需要对字符串进行频繁复制而又并不改变字符串内容时,效率比较低下方式2:写时复制COW(copy on write)浅拷贝+引用计数refcount,string占8个字节当两个std::string发生复制构造或者赋值时,不会复制字符串内容,而是增加一个引用计数,然后字符串指针进行浅拷贝,其执行效率为O(1)。只有当需要修改其中一个字符串内容时,才执行真正的复制

2021-01-15 21:13:33 127

原创 Linux/C++系统编程 day11

运算符重载类型转换其他类型向自定义类型转换只有当类中构造了合适的构造函数时,转换才能成功,被称为隐式类型转换从自定义类型向其他类型转换是由类型转换函数完成的operator 目标类型(){ //...}特征:必须是成员函数参数列表无参没有返回值,但必须return返回一个目标类型变量只有一个类型转换函数,自定义类型向其他类型转换时就会自己调用作用域作用域可以分为类作用域、类名的作用域以及对象的作用域几部分内容类作用域:一个类定义在另一个类里

2021-01-14 10:50:56 84

原创 Linux/C++系统编程 day10

运算符重载友元使用形式友元的形式可以分为友元函数和友元类class 类名1{ friend 函数名; friend class 类名2;};函数大致可以分为两种:成员函数和非成员函数(全局函数/自由函数/普通函数)代码示例在math.h头文件中有个hypot(x,y)函数,得到√(x²+y²)class Point;//类的前向声明class Line(){ //不能在这里写函数实现,因为程序执行顺序_ix_iy尚未定义 float distance(co

2021-01-14 10:47:01 156

原创 Linux/C++系统编程 day9

日志系统概述记录系统的运行轨迹,在这个基础上,进行跟踪分析错误,审计系统运行流程。一个日志系统根据他的过程,可以分为四个模块日志来源:日志内容可以来源于任何其他系统,但对日志系统来说,这是个格式化的缓冲区系统控制:系统控制的重点在于控制日志内容在日志系统中的流转过程。比如日志输出目的地,比如日志的输出级别日志输出:日志在控制台输出是比较常见的,但如何考虑为系统的可靠性提供支持,以及大量日志内容的情况下,这个一般不予考虑的。在控制台输出的,只会是非常核心的内容或者是致命的错误,况且,在有些情

2021-01-12 08:47:38 308

原创 Linux/C++系统编程 day8

C++输入输出流vector动态数组,vector v;最后位置插入,v.push_back(type);当前元素个数,v.size();当前容量,v.capacity();(扩容机制:当size()==capacity()时,如果还要继续插入元素,就会按照2*capacity大小扩容,接着将老的空间元素拷贝到新的空间,然后将新的元素插入到新空间后面,最后将老的空间进行回收虽然造成效率下降,但是如果老空间后面位置不够,直接在其后申请空间就会造成错误)提前预留空间,v.re

2021-01-12 08:43:39 95

原创 Linux/C++系统编程 day7

类与对象对象组织const对象类对象可以声明为const对象const对象只能调用构造函数、析构函数、const成员函数指向对象的指针类名 * 指针名 = 初始化表达式;初始化表达式可以通过&对象名初始化,也可以通过动态申请内存,或者干脆不初始化在程序中再对该指针赋值对象数组类名 数组名[对象个数];Point pts[]={Point pt1(1,2) , Point pt2(3,4)};(不能写为Point pts[]={(1,2) , (3,4)}

2021-01-11 15:51:20 136

原创 Linux/C++系统编程 day6

类与对象拷贝构造函数类名 (const 类名 &rhs)默认情况下编译器会自动生成拷贝构造函数(浅拷贝,如果有用到new需要手写一个深拷贝)//常见调用形式Point pt1(1, 2);Point pt2 = pt1;调用时机用一个已经存在的对象初始化另一个新对象函数的形参和传入的实参都是对象,进行实参与形参的结合时当函数的返回值是对象,函数调用完成返回时(编译器优化选项 -fno-elide-constructors 关闭优化C++标准允许一种

2021-01-11 15:46:02 97

原创 Linux/C++系统编程 day5

类与对象对象的创建与销毁构造函数函数名与类名相同,无返回类型返回值对象在创建的时候会调用构造函数,用以完成数据成员的初始化构造函数不能通过对象以.的方式调用默认情况下编译器生成无参构造函数,如果已经自定义构造函数则不会生成无参构造函数,显然构造函数可以进行重载String str;(创建String类对象)String str();(声明一个空参返回string的函数)初始化表达式每个数据成员初始化顺序由被声明时的顺序决定,与其在初始化列表中顺序无关

2021-01-11 15:42:30 90

原创 Linux/C++系统编程 day4

函数重载同一个作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数称为重载函数返回类型可以相同也可以不同,但仅返回类型不同不足以成为函数的重载原理:名字改编名字改编实际上是将函数名与参数列表(参数个数、顺序、类型)结合在一起定义成了新函数显然C语言不支持,而C++支持,C++兼容C时不会按照此方式对其库函数进行名字改编extern “C”{ }花括号内不进行名字改编,将代码在C++中按照C方式编译(但是在gcc中不识别extern,但可以使用C++内置宏,#

2021-01-11 15:41:33 278

原创 Linux/C++系统编程 day3

C++应用方向C++头文件都是模板编写,没有.h,而模板有一个特点必须知道所有实现之后才能进行正常编译(cd /usr/include/c++)函数声明和定义(形式上区别,花括号和末尾分号声明可以有多次,定义只能有一次)<<输出流运算符,左移乘2 endl换行>>输入流运算符,右移除2同窗口无法编译运行vimplus中可使用gcc注释一行,u还原或者再按一次运算符重载,视作函数命名空间为什么要使用命名空间?解决函数命名冲突

2021-01-11 14:42:00 183

原创 Linux/C++系统编程 day2

linux编译调试1.安装$sudo apt install g++ gcc(一次性安装g++和gcc编译器)2.过程编辑源码→预处理→编译→汇编→链接→可执行程序使用vim hello.c编辑源码使用file hello.o查看文件类型使用nm hello.o查看二进制文件2.1预处理$gcc -E hello.c -o hello.i.i文件,处理以#开头的预编译指令2.2编译$gcc -S hello.c -o hello.s.s文件,翻译

2021-01-11 14:18:06 141

原创 Linux/C++系统编程 day1

基本操作增添加用户useraddadduser(新建一个三无用户,无home目录,无密码,shell为sh)sudo useradd -m test -s /bin/bash(创建一个有家目录且shell为bash的用户)添加目录mkdir -p dir1(创建多级目录)mkdir -m 700 test(建立目录同时设置权限)树形结构, /表示根目录创建文件touch file1(改变文件时间戳创建文件)echo “hello wo

2021-01-11 14:15:26 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除