- 博客(21)
- 收藏
- 关注
原创 用滑动窗口代替暴力枚举:算法新手的第二道砍
接上一篇的算法内容,这篇来讲解“滑动窗口”。滑动窗口是算法中基于同向双指针的高效方法,通过左右两个指针在数组、字符串等结构上同向移动,形成一个 “窗口”。它通过动态调整窗口的左右边界,在 O (n) 时间复杂度内解决子数组、子串的统计类问题,如最长无重复子串、最大子数组和等;它也避免了暴力枚举的高复杂度。其核心是利用同向指针的协同移动,高效维护窗口的有效范围以完成统计或优化目标。长度最小的子数组1.题目解析这道题是中等难度的题目,看完题目结合例子来分析这道题的要求。
2025-12-12 21:18:05
814
原创 双指针:算法新手的第一道砍
本篇文章是用来记录我学习算法中双指针算法,方便我日后进行复习。欢迎大家来阅读,如有不足的地方请在评论区指出。在算法中,双指针是一种常见且高效的基础方法,核心思路是通过两个指针(或索引)协同遍历数组、链表等线性数据结构,替代嵌套循环以优化时间复杂度。它能将暴力枚举方法需要的复杂度O (n²) 简化为 O (n),大幅提升运行效率,空间复杂度常为 O (1)。根据遍历方向,双指针可分为同向指针和相向指针,常见应用有用快慢指针找链表环和反转字符串等。
2025-11-11 19:29:39
853
原创 【初阶数据结构】树——二叉树——堆(中)
上篇了解树和二叉树相关的概念,这篇学习一种特殊的二叉树--堆,通过认识堆来实现堆和堆的应用。希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
2025-05-06 08:21:16
1343
2
原创 【C++】新手入门指南(下)
这篇续上篇的内容新手入门指南(上),继续带大家学习新知识。如果你感兴趣欢迎订购本专栏。希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
2025-04-22 22:17:20
1493
6
原创 【初阶数据结构】树——二叉树(上)
本篇带大家学习一种非线性数据结构——树,简单认识树和二叉数以及了解二叉树的存储结构。一、树希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
2025-04-21 13:54:33
913
原创 【C++】新手入门指南(上)
希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
2025-04-19 17:18:04
1209
4
原创 【初阶数据结构】队列
因为队列是链表来实现的,在这里实现队列的定义会所有不同。定义“队列的结构”之前要把“队列的结点结构”给定义出来,把结点一个个单独定义出来;再对“队列的结构”进行定义,对队头(phead)、队尾(ptail)两个指针进行结构定义以及定义队列中有效个数(size)//底层结构用链表//定义队列结点的结构:对每个结点单独定义}QueueNode;//定义队列结构:要对队头,队尾两个指针进行结构定义int size;}Queue;希望这篇文章能够为您带来一些有价值的信息和启示。
2025-04-01 21:41:42
1320
3
原创 【初阶数据结构】栈
因为栈的底层用数组来实现,在前面学的顺序表底层也是数组,因此栈的定义跟顺序表的定义相似。【初阶数据结构】顺序表-CSDN博客详细介绍顺序表,对顺序表不了解,可先去学习顺序表)//定义栈的数据结构int top;//栈中有效个数//栈中容量}ST;希望这篇文章能够为您带来一些有价值的信息和启示。如果您发现有问题或者有建议,欢迎在评论区留言,我们一起交流学习。
2025-03-30 22:14:39
841
4
原创 【初阶数据结构】线性表之双链表
希望这篇文章能够为您带来一些有价值的信息和启示。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习。
2025-03-29 22:01:47
1097
1
原创 【初阶数据结构】线性表之单链表
各位好久不见,今天我将给大家更新线性表中的单链表,内容较多,希望大家能耐心地看完这篇博客。话不多说,接下来我详细介绍单链表。}SLTNode;希望这篇文章能够为您带来一些有价值的信息和启示。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习。
2025-01-09 17:42:41
1098
4
原创 【初阶数据结构】顺序表
本节内容开启新篇章,将为大家带来数据结构,数据结构分为两个阶段一个是初阶另一个是进阶。我首先给大家先介绍初阶数据结构,虽然内容看起来难但沉下心来学并没有你想象中的难学。给大家详细介绍了顺序表的定义和分类以及实现顺序表的方法,希望这篇文章能够为您带来一些有价值的信息和启示。
2024-11-30 17:19:08
971
4
原创 汉诺塔(hanio)--C语言函数递归
什么是汉诺塔?汉诺塔(Tower of Hanoi)(也称河内塔)是有法国数学家爱德华·卢卡斯于1883年发明的一道智力题。它源于印度的一个古老传说:大梵天创造世界的时候做了三根钻石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令一组牧师把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。据说牧师们夜以继日地工作,当他们完成任务时,那座塔就将坍塌,世界也将毁灭。希望这篇文章能够为您带来一些有价值的信息和启示。
2024-11-20 15:49:09
1191
5
原创 【C语言】C语言入门--函数
唠叨一下,后期会陆续更新关于数据结构的内容,请大家尽请期待。本篇文章将继续讲解C语言语法知识的函数部分,话不多说带入大家切入正题。了解库函数,接下来把重点关注自定义函数,因为自定义函数更加重要,也可以给程序员写代码带来更多可能性。把函数定义在main函数前面,无需声明。Add函数在main函数前面,则main函数对Add函数进行调用,编译器不会警告,编译成功。把函数定义放在main函数下方。
2024-10-27 22:22:51
2621
6
原创 C语言新手入门--数组
我将带领大家学习数组,初次接触C语言大家肯定有很多疑惑,也有急迫的心情恨不得把所有知识直接灌进自己的小脑瓜里面,但是学习是一件循序渐进的事情,保持耐心坚持下去一定会有结果。话不多说,带入大家切入正题。在未来的日子里,我将继续探索更多技术知识并把精彩内容分享在博客上面,敬请期待。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习。
2024-10-25 22:04:23
2949
7
原创 数据结构--复杂度
本节内容讲解数据结构中的复杂度。在认识复杂度之前,我们先了解数据结构和算法的定义。数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。数据结构有各式各样的,且没有任何一种单一数据结构对所以用途都有用,如线性表、树、图、哈希等。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
2024-10-19 21:58:27
1308
7
原创 实现猜数字游戏的简易代码
掌握并学习了前面的知识,那么我们可以用所学的知识写一些有趣的代码。比如:写一个猜数字游戏。本篇内容将详细讲解如何写猜数字游戏的代码。
2024-10-11 15:54:45
1527
3
原创 分支和循环(上)
C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使用 if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构。
2024-10-02 16:13:26
1186
1
原创 printf和scanf的详细讲解
是的缩写,format是格式化的意思,表示可以定制输出文本的格式。的作用是是将参数文本输出到屏幕。是库函数,包含的头文件.
2024-09-27 14:40:58
1611
原创 C语言数据类型和变量
数据类型是按被定义变量的性质、表示形式、占据存储空间以及构造特点来划分的。而在C语言中,数据类型分为两大类:内置类型和自定义类型。内置类型分为:字符型、整型、浮点型、布尔类型。自定义类型分为:数组、结构体(struct)、枚举(enum)、联合体(union)。这里只讨论内置类型。1.字符型:字符常量是用单引号括起来的一个字符,如字符变量的类型说明符是char字符变量是用来存储字符常量.(如图所示)2.整型:在C语言中,整型常量就是整常数,有十进制、八进制、十六进制三种形式。
2024-09-20 18:33:57
1069
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅