自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录之栈与队列篇

* 用栈实现队列,用队列实现栈来掌握的栈与队列的基本操作。* 通过括号匹配问题、字符串去重问题、逆波兰表达式问题来系统讲解了栈在系统中的应用,以及使用技巧。* 通过求滑动窗口最大值,以及前K个高频元素介绍了两种队列:单调队列和优先级队列,这是特殊场景解决问题的利器,是一定要掌握的。

2024-10-29 18:36:16 962

原创 代码随想录之字符串

字符串类类型的题目,往往想法比较简单,但是实现起来并不容易,复杂的字符串题目非常考验对代码的掌控能力。- 双指针法是字符串处理的常客。- KMP算法是字符串查找最重要的算法,但彻底理解KMP并不容易

2024-10-28 20:51:39 905

原创 代码随想录之哈希表篇

从哈希表的理论基础到数组、set和map的经典应用,把哈希表的整个全貌完整的呈现给大家。同时也强调虽然map是万能的,详细介绍了什么时候用数组,什么时候用set。

2024-10-27 17:33:43 608

原创 代码随想录之链表篇

代码随想录之链表篇:总结了常见的链表算法,例如移除指定的节点、反转链表、判断相交节点、判断链表是否有环等等。

2024-10-26 11:45:02 1076

原创 BFS算法

BFS算法的**核心思想**为:> 将一些问题抽象为图,从一个点开始,向四周扩散。一般来说啊,BFS算法都是用到[**队列**]的,将一个节点的周围的所有节点加入到队列。

2024-10-25 20:45:23 1025

原创 数组奇技淫巧之-差分数组

差分数组主要适合的场景为。假设有一个数组nums,需要对区间[i, j]之间的元素全部加 1 , 再给区间[k, l]之间的元素全部减 3, 而后再给区间[x, y]之间的元素全部加 2 ,最后再给…如果对每一个操作都使用先遍历找到指定的区间元素,再进行修改,光是找到找到对应的区间需要ON的时间复杂度了,对于频繁改动的情况,这种效率非常低。这里可以考虑使用差分数组的技巧。类似于前缀和技巧构造的preSum数组,考虑对nums数组构造一个diff差分数组,diff[i]就是nums[i]和。

2024-10-25 20:44:41 929

原创 二叉树算法

对于BST的每一个节点node,左子树的节点的值都要比node值小,右子树节点的值都要比node值大对于BST的每个节点node,他的左侧子树和右子树都是BSTBST的中序遍历结果是有序的(升序)

2024-10-25 20:43:16 719

原创 回溯算法详解

抽象的说,解决一个回溯问题,实际上就是遍历一遍决策树的过程,树的每一个叶子节点存放着一个合法答案。将整棵树遍历一遍,就将叶子节点的答案收集起来,就能得到所有的合法答案。

2024-10-25 20:42:41 1087

原创 前缀和算法

前缀和算法用于快速,频繁计算一个索引区间内的元素之和

2024-10-25 20:41:31 328

原创 双指针技巧

双指针的技巧主要分为两类:左右指针和快慢指针。左右指针:两个指针相向而行或者相背而行快慢指针:两个指针同向而行,但是一快一慢

2024-10-25 20:40:40 563

原创 数据结构详解

数组增删改查的时间复杂度见下表addo1oNremoveo1oNseto1o1geto1o1addoN。

2024-10-25 20:39:36 705

原创 算法核心框架

于数据结构和算法的精炼总结:所有的数据结构,底层皆为数组(顺序存储)和链表(链式存储)数据结构的关键点在于遍历和访问,即元素的增删改查等基本操作所有的算法,本质皆为穷举穷举的关键点在于无遗漏和无冗余。熟悉掌握算法框架,可以做到无遗漏;充分利用信息,可以做到无冗余。

2024-10-25 20:38:20 369

原创 代码随想录-数组篇

主要讲解数组中常用的技巧,例如二分查找、双指针、滑动窗、模拟、差分数组、前缀和等技巧

2024-10-25 17:55:38 685

原创 动态规划基础知识详解

递归和迭代两种方法的区别在于,前者是自顶向下的,后者是自底向上的。在拆分问题的时候,需要自顶向下,列出状态转移方程,然后自底向上更新dp数组。

2024-10-20 17:43:09 1086 1

原创 5 单例模式

单例模式确保类只有一个实例,并提供一个全局访问点。

2022-08-30 11:41:27 172

原创 HeadFirst设计模式——工厂模式

HeadFirst设计模式之工厂模式

2022-08-30 11:38:19 180

原创 3 装饰者模式

装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案

2022-08-26 17:07:51 144

原创 2 观察者模式

观察者模式笔记

2022-08-25 13:58:12 172

原创 1 设计模式入门

HeadFirst设计模式第一章知识总结

2022-08-25 09:35:58 188

原创 使用docker技术实现MySQL主从同步出现IO connecting的解决方案

MySQL版本:5.7.261 检查从库绑定主库命令是否正确从库绑定主库的命令:change master to master_host='your_ip',master_port=port,master_user='username',master_password='password',master_log_file='binlog.000001',master_log_pos=154;在主机中执行命令:show master status可以得到参数master_log_file和.

2022-02-22 20:37:42 1243

原创 MySql进阶笔记

1 存储引擎1.1 MySQL体系结构存储引擎层:索引是在存储引擎层实现的,因此不同的存储引擎,有不同的索引存储层:存储数据库的相关数据,以及一系列的日志文件等1.2 存储引擎简介存储引擎是存储数据、建立索引、更新、查询数据等技术的实现方式。存储引擎是基于表的,而非基于库,因此存储引擎也可以被称为表类型。-- 查看当前数据库支持的存储引擎show engines;默认的存储引擎为InnoDB。1.3 存储引擎特点1.3.1 InnoDB介绍InnoDB是一种兼顾高可靠

2022-02-22 15:48:44 308

原创 2021-08-31

java.lang.IllegalArgumentException: Property ‘dataSource‘ is required问题描述在学习黑马旅游网的登录界面中配置JDBC连接池中出现了以上的异常。我的配置文件druid.properties放在了模块的src目录下。解决方法:JDBCUtils中的静态代码块做出如下更改:FileInputStream fis = new FileInputStream("src//druid.properties");在配置文件名前面加上路径

2021-08-31 08:58:24 97

原创 4 栈(stack)

4 栈4.1 实际需求​ 科学计算器就是用到了栈的原理4.2 介绍英文名为:stack栈是一个先进后出(First in last out)的有序列表栈是 限制线性表,元素的插入和删除只能在线性表的同一端进行,允许插入和删除的一端称为变化的一端,是栈顶,另外一端为固定的一端,称为栈底。根据栈的定义,最先放入栈中的元素在栈底,最后放入栈中的元素在栈顶。最先弹出的元素在栈顶,最后弹出的元素在栈底。压栈(push)和弹栈(pop)的原理图4.3 栈的经典应应用场景

2021-05-02 09:49:03 279

原创 3 链表(LinkedList)

3 链表(LinkedList)3.1 链表介绍链表是以节点的方式来存储数据的每一个节点包含data域和next域,next域存储的是下一个节点的内存地址链表的各个节点在内存中并不一定是连续存放的链表根据有无头节点分为两类链表的一个示例3.2 实现单向链表使用单项链表对水浒英雄实现增删改查的操作两种方式添加元素直接在链表中添加元素根据任务的排名将水浒英雄添加到指定位置,如果链表中已经有了这个排名,抛出异常3.3 单向链表代码cla

2021-04-24 18:42:33 104

原创 2.队列

2. 队列2.1 队列介绍队列是一个有序列表,可以使用数组或者链表来实现遵循先进先出的原则。即:先存入队列的数组,先取出;后存入队列的元素,后取出队列的示意图2.2 使用数组模拟队列​ 如上图所示, 使用数组的结构来模拟队列,需要声明一个最大的容量maxSize。同时,因为输出于输出分别在队列的前后端进行,因此我们需要证明两个指针front和rear,分别指向队列的头部和尾部。其中,front和队列的输出有关,rear和队列的输入有关。​ 队列中应当由两个方法,分别是添加元素add(

2021-04-21 13:15:31 87

原创 1.稀疏数组

1.稀疏数组1.1 基本介绍​ 当一个数组中大部分元素为0,或者为同一个数组时,可以使用稀疏数组来保存该数组。​ 稀疏数组的处理方法:记录一个数组的size,有多少个不同的值把具有不同值的元素的下标和值记录在一个小规模数组(稀疏数组)中,从而缩小程序的规模1.2 经典案例该二维数组的很多默认值是0,因此记录了许多没有意义的数据—>稀疏数组1.3思路分析1.3.1 二维数组转稀疏数组的思路:遍历原始的二维数组,得到原始数组中的有效数据的个数sum根据sum的值创建一个

2021-04-21 11:05:12 73

空空如也

空空如也

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

TA关注的人

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