自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 【动态规划算法】路径问题

动态规划(Dynamic Programming,简称 DP)是一种通过分解复杂问题为重叠子问题,并存储子问题的解以避免重复计算,从而高效求解具有特定性质(重叠子问题、最优子结构)问题的算法思想。一、核心思想:“分解 + 复用”动态规划的核心在于:1.将原问题拆解为规模更小的子问题;2.求解子问题后,将结果存储起来(记忆化),避免后续重复计算;3.基于子问题的解,推导出原问题的解。简单来说,就是 “”,二、动态规划的 2 个关键前提三、动态规划的 2 种实现方式四、经典应用场景。

2025-08-03 21:49:33 839 8

原创 【Linux】进程地址空间

初识进程地址空间与页表,一些进程相关概念的加深理解

2025-08-01 12:15:45 690 9

原创 【动态规划算法】斐波那契数列模型

对于初学者来讲学术上的概念晦涩难懂,将用通俗易懂的方式带来感性的理解.1.状态表示dp表(一维或二维数组)里面的值所表示的含义从哪获取?1.题目要求,如本题2.题目没有明确说明的情况下+做题经验的累积3.分析问题的过程中,发现重复的子问题来概括2.状态转移方程就是dp表元素等于什么,是一种递推关系式,本题已告知3.初始化要确保填dp表时不越界,对填表时越界的元素首先初始化4.填表顺序为了填写当前状态的时候,所需要的状态已经计算过了的顺序,本题为从左向右5.返回值。

2025-07-30 11:48:29 792 52

原创 【Linux】环境变量

常见的环境变量及相关指令,命令行参数了解,通过代码获取环境变量,getenv,本地变量与内建命令

2025-07-29 21:06:58 1062 20

原创 【Linux】进程状态

一般操作系统的进程状态,具体Linux下的进程状态,进程的优先级概念,PRI和NI,top命令,优先级的调度简述

2025-07-28 10:08:15 918 52

原创 【算法】前缀和经典例题

1.预处理出来一个前缀和数组⽤ dp[i] 表⽰: [1, i] 区间内所有元素的和,那么 dp[i - 1] ⾥⾯存的就是 [1,i - 1] 区间内所有元素的和,那么:可得递推公式: dp[i] = dp[i - 1] + arr[i];2.使用前缀和数组当询问的区间是 [l, r] 时:区间内所有元素的和为: dp[r] - dp[l - 1]细节问题:为什么下标要从1开始计数?

2025-07-26 21:13:40 1299 28

原创 【Linux】进程概念

冯诺依曼体系结构,操作系统简单概念,描述进程与如何管理,查看进程状态指令,标识符pid,ppid,fork函数详解

2025-07-22 19:58:45 1082 61

原创 【算法】二分查找经典例题

该模板为最朴素的二分查找模板,适用范围一般限制较多,后续会总结左右边界的判断模板,为万能模板,适用范围更广非递减顺序排列就是递增序列或不变画星部分不用特意去记,根据题意分析二段性就可以得出,求中间值的方法可以这么想,当求左端点时,当数组元素为偶数个数时中间值有两个,mid落在左边那个,对应的计算方法就不要+1,反之求右端点时mid落在中间值右边那个,计算方法要+1,循环判断条件都相同。更万能的记忆的方法,当if条件语句中出现了减法,那么中间值的计算就要+1。

2025-07-20 09:51:04 1190 53

原创 【Linux】环境基础与开发工具的使用

yum,vim,gcc/g++,make/makefile,git的简单使用,gdb

2025-07-18 11:59:45 1257 50

原创 【Linux】第一个小程序—进度条

回车换行、缓冲区概念,进度条的实现及调用场景模拟

2025-07-17 11:10:42 1136 44

原创 【Linux】权限的概念及理解

文件访问者,文件类型和基本访问权限,文件权限的设置修改指令,权限值的表示,目录的权限,权限掩码,粘滞位

2025-07-09 14:23:05 1720 56

原创 【Linux】常用基本指令

30多个常用指令以及一些拓展,对指令、文件、操作系统的初步理解,一些热键快捷指令的使用

2025-07-05 17:35:41 6569 65

原创 【C++】IO流

缓冲区理解,流的四种位状态,文件读写操作,序列化于反序列化

2025-06-10 19:20:26 1254 29

原创 【C++】类型转换

如果,或者,或者,就需要有以下两种形式:1.隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败2.显式类型转化:需要用户自己处理:转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪错误的转换。

2025-06-10 19:18:44 1300 26

原创 【C++】特殊类设计

如果单例对象构造十分耗时或者占用很多资源,比如加载插件啊, 初始化网络连接啊,读取文件啊等等,而有可能该对象程序运行时不会用到,那么也要在程序一开始就进行初始化,就会导致程序启动时非常的缓慢。1.定义一个成员函数使得能new一个在堆上创建的对象,加上static修饰,可以使该函数属于类,它的调用不在依赖于实例化的对象,而是直接通过类名+访问限定符就可以直接访问。一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块享。

2025-06-03 10:55:16 1349 34

原创 【C++11】智能指针

借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处:1.不需要显式地释放资源。2.采用这种方式,对象所需的资源在其生命期内始终保持有效智能指针原理:1.RAll特性 2.重载operator*和opertaor->,具有像指针一样的行为。

2025-05-28 09:52:01 1106 31

原创 【C++11】特性详解

左值引用核心价值是减少拷贝,提高效率。右值引用核心价值是进一步减少拷贝,弥补左值引用没有解决的场景,如传值返回右值引用对内置类型没有意义,代价不大,最大一般就8字节,要关注消耗空间内存的大头,如一些数据结构的拷贝。浅拷贝的类代价略大于内置类型,移动构造不需要实现,没有什么需要转移的资源,只能是直接拷贝1.自定义类型中深拷贝的类,必须传值返回的场景返回值ret被识别为右值(将亡值),ret1处发生移动构造直接继承指向ret的资源空间,ret接收ret1的资源空间出生命周期后直接销毁释放。

2025-05-26 11:16:27 1226 28

原创 【C++】位图+布隆过滤器

布隆过滤器优点增加和查询元素的时间复杂度为:O(K), (K为哈希函数的个数,一般比较小),与数据量大小无关哈希函数相互之间没有关系,方便硬件并行运算布隆过滤器不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势在能够承受一定的误判时,布隆过滤器比其他数据结构有这很大的空间优势数据量很大时,布隆过滤器可以表示全集,其他数据结构不能使用同一组散列函数的布隆过滤器可以进行交、并、差运算布隆过滤器缺陷。

2025-05-22 10:11:02 1342 30

原创 【C++】哈希的概念与实现

哈希冲突,哈希函数,哈希表,哈希桶

2025-05-19 12:47:19 1100 34

原创 【C++】unordered_map与set的模拟实现

用一个模板参数T来表示数据,unordered_set为key,map为pair<K,V>,实现了泛型。

2025-05-18 13:15:38 1413 30

原创 【C++】map和set的模拟实现

模拟实现set中定义的迭代器引发的插入问题,红黑树中const迭代器的构造函数

2025-05-14 19:22:07 881 30

原创 【C++】红黑树

_kv(kv),_col(RED){ }与AVL树相比,将平衡因子替换成颜色。为什么默认将新插入节点颜色给成红色?因为给黑色导致该路径黑色节点增加,红黑树性质每条路径上黑色节点数量相同,这样会导致所有路径节点发生变化。而给红色,当前路径违反了不能有两个连续红色节点性质,进行局部颜色调整和旋转即可。

2025-05-10 18:39:54 1355 33

原创 【C++】AVL树

与普通二叉搜索树节点结构的主要区别在于AVL树节点增加了平衡因子和父节点指针:1.平衡因子:用于记录节点左右子树的高度差,帮助维护树的平衡。普通二叉搜索树没有这个概念,不保证树的平衡性。2.父节点指针:方便在进行旋转等平衡操作时,快速定位和调整树结构。普通二叉搜索树通常没有这个指针,因为其操作不需要频繁回溯父节点。方便更新平衡因子。

2025-05-06 11:33:59 1076 30

原创 【C++】map与set

关联式容器,map,multimap,set,multiset以及在OJ中的使用

2025-04-28 23:59:47 928 29

原创 【C++】异常

了解异常概念及使用,了解异常体系,分析优缺点

2025-04-26 11:27:11 832 21

原创 【C++】二叉树进阶面试题

根据二叉树创建字符串,最近公共祖先,二叉搜索树转化成排序双向链表,根据前序和中序构造二叉树,前中后序的非递归实现

2025-04-24 23:31:55 860 37

原创 【C++】二叉搜索树

详解二叉搜索树的概念,实现,应用

2025-04-20 23:49:42 821 28

原创 【C++】多态

C++三大特性之多态详解

2025-04-15 21:44:08 1421 29

原创 【C++】继承

C++三大特性之继承详解

2025-04-12 17:21:33 1019 49

原创 【C++】模板进阶

typename和class使用场景,非类型模板参数,模板特化,模板分离编译

2025-04-11 08:52:42 1268 40

原创 【C++】优先级队列+反向迭代器

优先级队列的介绍使用和模拟实现,反向迭代器的介绍和模拟实现,以及适配例子

2025-04-08 10:47:48 1066 35

原创 【C++】stack与queue和deque

stack与queue的介绍使用和模拟实现,deque的了解及对比

2025-04-01 23:51:01 1546 39

原创 【C++】详解list容器

list的介绍和使用,与vector区别,list的模拟实现

2025-03-31 00:02:18 1100 36

原创 详解vector容器

介绍vector,详解各主要接口的使用,OJ的运用,模拟实现

2025-03-25 19:43:50 1433 28

原创 详解string类+迭代器

迭代器,string类的常用接口,string类的模拟实现

2025-03-20 23:28:42 1908 32

原创 C++模板初阶

初步学习模板内容,为后续深入打基础

2025-03-14 19:50:32 846 30

原创 C/C++内存管理

详解C/C++内存管理方式的异同,以及new/delete的原理实现等

2025-03-13 10:09:29 1799 25

原创 【C++】类和对象(下)

详细讲解初始化列表,explicit关键字,static成员,友元,内部类和匿名对象

2025-03-11 23:53:41 1535 33

原创 【C++】类和对象(中)

类的6个默认成员函数,流插入和流提取及前后置++重载,const成员

2025-03-10 18:56:17 1067 21

原创 类和对象(上)

C语言结构体只能定义变量,在C++中结构体内不仅可以定义变量也可以定义函数。class为定义类的关键字,classname为类的名字,{}中为类的主体。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1.声明和定义全部放在类体中,若成员函数在类中声明定义,编译器可能将其当成内联函数来处理。2.类声明放在.h文件中,成员函数定义在.cpp文件中,成员函数名前需加 类名::!!!,可根据函数代码量来确定哪一种方式,一般第二种更稳妥。

2025-03-06 07:40:19 1050 27

空空如也

空空如也

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

TA关注的人

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