自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ——贪心算法——

本文介绍了贪心算法的基本概念、应用场景和解题策略。贪心算法通过局部最优选择希望达到全局最优解,但并非所有问题都能保证全局最优。文章通过多个经典例题(如找零问题、股票买卖、跳跃游戏等)详细讲解了贪心策略的设计思路和实现方法,并分析了不同策略的正确性证明。同时,文章也指出贪心算法的局限性,以及在特定情况下需要结合动态规划等其他算法来解决问题。最后,文章通过具体代码实现展示了如何应用贪心策略解决实际问题。

2025-09-13 19:45:35 1035

原创 ——并查集——

摘要:本文介绍了并查集数据结构的原理与实现。并查集用于维护不相交集合,通过森林结构表示集合关系,使用父节点数组和路径压缩优化查找效率。文章详细讲解了并查集的设计思路,包括数据编号、查找根节点、合并集合等核心操作,并提供了C++实现代码。最后通过"省份数量"和"等式方程的可满足性"两个算法例题,展示了并查集在解决实际问题中的应用。实现中采用了哈希表维护数据编号映射,以及路径压缩技术提高查询效率。

2025-09-28 16:51:57 878

原创 深度优先搜索——DFS

本文系统讲解了深度优先搜索(DFS)算法的核心思想与应用场景,重点包括: 基础应用 通过汉诺塔、合并有序链表、反转链表等经典问题展示递归思想 二叉树遍历的三种方式及典型应用(如验证二叉搜索树、求路径和) 进阶技巧 回溯算法:通过全排列、子集生成等问题展示状态恢复机制 剪枝策略:在括号生成、组合总和等问题中提前终止无效分支 特殊场景 FloodFill算法解决图像渲染、岛屿数量等问题 记忆化搜索优化斐波那契、最长递增子序列等重复计算问题 复杂问题 N皇后、数独等约束满足问题的DFS解法 矩阵中的最长递增路径等

2025-09-05 16:39:25 745

原创 广度优先遍历-BFS

本文系统介绍了BFS(广度优先搜索)算法及其应用场景,主要包括: BFS基础:讲解BFS的核心思想(逐层遍历)和实现方式(使用队列),主要讲解BFS在二叉树的层序遍历,FloodFill问题,边权为1的单源和多源最短路问题以及拓扑排序问题中的应用

2025-08-26 17:40:30 869

原创 优先级队列(堆)

本文讲解了几个使用堆来解决的经典的算法题,单纯使用堆来解决的问题都不是很难,只要我们熟悉库里的priority_queue的接口以及大堆和小堆的比较规则,这类问题一般不会很难,但是堆一般不会单独考察,而是与其他算法一起使用,比如贪心等。

2025-08-21 16:28:04 1155

原创 ——栈——

有关栈的问题大部分伴随着括号匹配,运算顺序等场景,可能我们想到使用栈来解决很容易,但是题目中注意的细节可能很多,就比如第4题的字符串解码, 他其实需要将问题分很多类进行讨论,我们在做这类题目的时候,需要格外注重细节以及一些边界情况。

2025-08-21 15:33:12 694

原创 ——字符串——

本文主要讲解字符串问题的部分经典算法题,字符串问题大多数都涉及到字符串表示的整数运算,或者子串/子序列问题,难度一般不大,但是需要考虑的细节比较多。

2025-08-19 19:56:50 949

原创 ——哈希表——

本文主要讲解使用哈希表解决的几个经典例题,这类题目难度一般不大,但是需要我们对库里面的哈希容器的接口有一定的了解,能够熟练使用常用的接口。

2025-08-18 17:16:57 573

原创 ——链表——

链表类型的题目难度一般不大,一般的操作就是头插尾插,真正考察的其实是在头插尾插的过程中我们不能丢失节点,使用哨兵节点、多变量保存关键节点指针等技巧,可有效避免链表操作中的节点丢失问题,适用于大多数链表题目。

2025-08-18 16:28:11 1068

原创 ——分治——

本文主要讲解了分治的两种经典应用: 快排和归并,并使用三色标记法,优化了传统的快排,提高了效率,同时基于三色标记法的快速选择算法,可以用于解决topK问题。而归并算法的递归顺序则是一种二叉树的后续遍历,很适合处理先处理子区间有序,再处理整体有序的问题,比如文中的逆序对等问题。

2025-08-17 19:50:58 922

原创 ——模拟——

本文总结了模拟类题目的解题思路,通过5个LeetCode题目实例进行解析。主要内容包括:1.替换字符串中的问号,确保相邻字符不重复;2.计算提莫攻击的致盲总时间,处理区间重叠;3.Z字形变换字符串的规律分析;4.外观数列的行程长度编码转换;5.数青蛙问题中蛙鸣阶段的模拟。核心思路是发现题目规律,将模拟过程转化为代码实现。这类题目关键在于准确理解题意,找到正确的模拟方法,并注意边界条件和时间优化。

2025-08-10 15:44:10 645

原创 位运算

本文介绍了位运算在编程中的常见应用,包括基本操作(按位与、或、异或等)和几种典型算法题解法。主要内容包括:1. 二进制位操作的实现方法,如判断某位值、修改指定位等;2. 位运算在算法题中的应用:判定字符唯一性、寻找缺失数字、计算两数之和、查找只出现一次的数字等;3. 详细解析了每道题的位运算解决思路和代码实现。文章展示了位运算在解决特定问题时的简洁高效特性,为算法优化提供了有效思路。

2025-08-10 14:16:47 661

原创 前缀和

本文介绍了前缀和数组的概念及其应用。前缀和数组通过预处理存储区间和,避免了重复计算,能高效解决区间求和问题。文章详细讲解了一维和二维前缀和的构建方法,并通过多个例题展示其应用场景,包括寻找中心下标、数组乘积、和为K的子数组等问题。前缀和不仅能优化时间复杂度,还能结合哈希表等数据结构解决更复杂的问题。文中还提到了后缀和数组的概念,以及如何通过前缀和与后缀和数组快速计算任意区间和。最后总结了前缀和在处理线性数据结构区间求和问题中的高效性和实用性。

2025-08-07 16:54:25 971

原创 二分查找

本文系统介绍了二分查找算法的应用场景与实现细节,重点讲解了三种常见题型:基础二分查找、左边界查找和右边界查找。同时详细解析了二分查找的变种应用,包括处理旋转数组、寻找峰值、缺失值检测等特殊场景。二分法的核心在于数据的二段性;而非严格有序,深入探讨了中间值计算、边界更新的技巧以避免死循环。针对各类边界条件(如极值、缺失值等)提供了具体的代码实现和异常处理方案,为掌握二分查找算法提供了全面指导。

2025-08-05 18:28:46 606

原创 同向双指针——滑动窗口

本文介绍了滑动窗口算法的典型应用场景和解题思路。滑动窗口本质上是同向移动的双指针,用于维护满足特定条件的区间。文章通过7个LeetCode例题(长度最小子数组、无重复字符最长子串、最大连续1个数、将x减到0、水果成篮、字母异位词、最小覆盖子串)详细讲解解题方法。每个例题都包含暴力解法分析(O(n^2))和滑动窗口优化(O(n)),重点阐述了如何通过维护窗口的左右边界和统计信息来高效求解。滑动窗口特别适合解决"区间越大越符合/不符合条件"的问题,能有效找到临界点。代码部分展示了C++实现,

2025-08-05 14:56:02 861

原创 基础双指针

本文总结了双指针算法在数组问题中的应用,主要包括移动零、复写零、快乐数、盛水容器、三角形个数、两数之和、三数之和和四数之和等问题。双指针通过维护区间性质,高效解决数组分块、查找和去重问题。算法通常先对数组排序,利用单调性移动指针,降低时间复杂度至O(N)或O(N^2)。关键点包括区间划分、去重策略和边界条件处理。双指针能有效优化暴力解法,是处理数组问题的常用技巧。

2025-08-04 14:32:23 1330

原创 Dijkstra算法——不带负权的单源最短路径

本文详细介绍了Dijkstra算法的原理及其在不同图结构中的应用,包括稠密图和稀疏图的实现模板。Dijkstra算法是一种用于解决非负权值图的单源最短路径问题的贪心算法,通过不断选择当前最短路径的节点并进行松弛操作,逐步确定所有节点的最短路径

2025-05-23 19:54:32 807

原创 差分数组 - 对区间内元素的统一操作

本文讲解差分数组的概念,性质以及经典例题

2025-05-21 12:49:59 1144

原创 环境配置与MySQL简介

本文主要讲解MySQL的环境搭建,以及介绍MySQL以及数据库的基础知识,对数据库做一个基本了解

2025-05-14 14:32:28 846

原创 动态规划--背包问题(01背包,完全背包,二维费用背包)

本文主要讲解背包问题-01背包,完全背包,二维费用背包问题等

2025-05-13 13:09:39 1156

原创 动态规划--两个数组的dp问题

本文主要讲解两个数组的动态规划问题的几个经典例题,对这类问题的思路进行总结

2025-05-09 18:49:14 852

原创 动态规划--子序列问题

本文主要讲解动态规划的子序列系列问题的讲解。

2025-05-07 12:03:40 1141

原创 动态规划--回文串问题

本文主要讲解动态规划的回文串问题,讲解几个经典的回文串问题,提供回文串问题的动态规划基础思路。

2025-05-04 15:51:27 1060

原创 动态规划 -- 子数组问题

本文主要讲解动态规划算法中的子数组问题

2025-04-30 15:41:58 861

原创 状态机DP -- 股票买卖问题

本文讲解动态规划系列的股票买卖问题

2025-04-24 15:04:33 707

原创 动态规划 -- 简单多状态dp,打家劫舍问题

本文讲解了简单多状态dp的几个经典问题,打家劫舍系列的动态规划问题

2025-04-17 19:39:01 646

原创 动态规划--路径问题

动态规划的路径问题思路与讲解。

2025-03-12 20:42:50 851 1

原创 动态规划--斐波那契类型

本文讲解了动态规划入门的斐波那契模型,简单对动态规划的算法思想进行了入门的讲解

2025-03-08 20:37:21 687

原创 SYN Flood , DDos攻击以及防护措施

简单讲解SYN Flood 的原理以及SYN Flood和DDos攻击的防护措施

2024-11-05 21:58:35 1390 1

原创 HTTP服务器测试与优化

本文主要测试我们的服务器,包括一些边缘测试,以及最终的性能测试

2024-11-02 16:03:36 1350

原创 HttpServer模块 --- 封装TcpServer支持Http协议

HttpServer模块的设计,为用户提供一个支持Http协议的服务器组件

2024-10-25 20:36:09 1494 1

原创 HttpContext模块 --- http上下文模块

Http上下文模块的设计和实现

2024-10-25 14:54:28 1212

原创 HttpResponse --- 存储http响应要素

HttpResponse模块,存储http响应的关键要素

2024-10-22 16:30:26 350

原创 HttpRequest模块 --- 存储http请求要素

http请求报文要素的存储模块

2024-10-22 11:01:12 684

原创 Util --- 工具函数类

提供http协议支持的工具函数,便于http报文的解析

2024-10-22 10:22:09 1806

原创 Http模块总体设计

http模块的子模块划分以及总体设计思想

2024-10-21 10:23:24 770

原创 服务器模块测试

对服务器的逻辑进行简单测试

2024-10-21 10:19:41 644 1

原创 EventLoopThreadPool模块---从属Reactor线程池

对主从Reactor线程的整体管理以及后续为新连接分配合适的EventLoop

2024-10-21 09:49:55 635

原创 TcpServer模块 --- 服务器模块

TcpServer模块的设计,为用户提供快速创建服务器的方案

2024-10-21 09:49:17 1101

原创 EventLoopThread --- 封装实现从属Reactor线程

对EventLoop模块的封装,为每一个EventLoop绑定一个线程,承担从属Reactor线程的功能

2024-10-21 09:48:26 640

结构体应用-通讯录中功能函数的实现

通讯录函数的实现

2024-03-27

C语言 数组的应用-扫雷

游戏函数代码实现

2024-03-13

C语言 数组的应用-扫雷

扫雷游戏函数代码的实现

2024-03-12

空空如也

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

TA关注的人

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