- 博客(68)
- 收藏
- 关注
原创 剑指offer | 2.3 数据结构相关题目
这篇文章总结了剑指Offer中的高频算法题解,主要涵盖数据结构专题的面试题3-9。这些题目涵盖了数组、链表、树、栈和队列等核心数据结构,提供了时间复杂度优化思路和详细的代码实现。
2026-04-09 22:43:57
424
原创 查找 | 常见笔试、面试题汇总
本文总结了8道LeetCode高频数组与二分查找算法题,重点讲解了二分查找的标准应用、边界处理、重复元素处理等核心技巧,同时提供哈希表、双指针、排序、异或、数学公式等多种解法。
2026-03-29 22:02:22
386
原创 Linux 多线程编程详解:从基础概念到同步机制
本文系统介绍了Linux系统中进程与线程的概念及其实现机制。重点阐述了线程的基本操作接口和四种同步方法,详细分析了各机制的接口函数和使用场景,并通过代码示例演示,最后探讨了线程安全性和死锁问题。
2026-03-26 22:31:21
410
原创 图 | 3道LeetCode常见笔试、面试题汇总
本文整理了3道图的LeetCode基础高频题,分别是「星型图中心节点」「岛屿的周长」「图像渲染」,涵盖图的基础判断、二维数组遍历、DFS/BFS核心用法,每道题提供多种解法,附详细注释、原理分析和复杂度说明,新手可直接复制代码运行,快速掌握核心解题思路。
2026-03-19 21:03:03
393
原创 Linux 进程间通信 IPC 总结:管道 + 信号量 + 共享内存 + 消息队列(附代码)
本文系统介绍了Linux系统中四种核心的进程间通信(IPC)机制:管道、信号量、共享内存和消息队列。重点分析了每种机制的工作原理、系统调用接口及典型应用场景,还提供了完整的代码示例,展示了如何在实际编程中运用这些IPC机制,并对比了各机制的优缺点,为Linux系统编程提供了实用的IPC解决方案。
2026-03-17 15:47:29
688
原创 LeetCode 二叉树高频题全解:代码 + 解法 + 错误总结
本文系统整理了二叉树高频算法题,包括层序遍历、最大深度、平衡二叉树、最小深度和根据前序中序重建二叉树等。通过代码示例和错误分析,详细讲解了BFS和DFS两种解法。
2026-03-10 17:24:10
406
原创 LeetCode 682.棒球比赛 | 从思路踩坑到最优解(栈 + 变量法深度总结)
本文探讨了LeetCode 682题棒球比赛的解题思路演变过程。最初尝试用变量模拟得分记录,但因无法处理历史状态和连续撤销操作而失败。随后改用栈结构存储历史得分。
2026-03-07 23:53:07
411
原创 LeetCode 205.同构字符串 | 双射关系
摘要:本文探讨了判断字符串同构的算法问题。通过分析发现,仅使用单向哈希映射会导致错误,必须建立双向映射关系才能满足同构条件。
2026-03-05 16:09:39
247
原创 LeetCode 202.快乐数 | 从暴力超时到看懂两种解法
本文探讨了LeetCode 203.快乐数的解题思路。通过分析发现,该题核心在于判断数字平方和运算是否会进入循环或达到1。文章介绍了两种最优解法:哈希表法和快慢指针法。关键启示在于处理类似无限运算问题时,应优先考虑循环检测而非暴力计算,其中快慢指针法是面试推荐的最优解。
2026-03-03 22:50:11
377
原创 【位运算】5 道经典入门 LeetCode 位运算题整理
本文总结了位运算的6个核心技巧及其应用场景:异或去重、获取特定位、消除最后一位1等。通过5道LeetCode题目的解题思路和代码实现,展示了位运算在查找唯一数字、二进制翻转、统计1的个数、判断2的幂以及寻找缺失数字等问题中的高效应用。
2026-03-03 17:05:17
1229
原创 LeetCode 142. 环形链表 II|找环的入口节点(哈希表 + 快慢指针数学推导)
本文介绍了两种检测链表环入口的方法。哈希表法通过遍历链表并用集合记录节点,当遇到重复节点时即为环入口。更优的快慢指针法先用双指针判断是否有环并找到相遇点,再通过数学推导确定环入口:设两指针分别从头节点和相遇点出发,必在环入口相遇。两种方法各有特点,其中快慢指针法是面试高频考点,推荐掌握。
2026-03-02 21:40:02
522
原创 LeetCode 19. 删除链表的倒数第 N 个结点 | 长度法、快慢指针、栈,三种最优解法
本文介绍了三种删除链表倒数第N个节点的方法。1)计算长度法;2)快慢指针法;3)栈方法。三种方法时间复杂度均为O(N),但快慢指针法空间复杂度最优,推荐作为面试首选解法。
2026-03-02 20:57:33
260
原创 单链表就地逆置 | 从暴力 O (n²) 到最优 O (n),4 种方法彻底吃透
本文探讨了单链表就地逆置的四种算法实现。前两种方法存在明显缺陷,后两种方法均为最优解:三指针迭代法;头插法。文章通过测试验证了算法正确性,强调就地逆置的核心在于仅改变指针指向而不创建新结点。
2026-03-02 20:53:12
255
原创 LeetCode 141. 环形链表 | 哈希表、数组、快慢指针,最优解法一目了然
本文介绍了判断链表是否有环的三种方法。哈希表法通过记录访问过的节点实现判断,时间复杂度;动态数组法采用暴力查重;最优解法是快慢指针法,使用两个不同步速的指针遍历链表,既高效又节省空间。
2026-03-02 20:44:09
409
原创 LeetCode 190.颠倒二进制位 | 从暴力解法到位运算魔法
本文探讨了32位二进制位反转问题的两种解法。最初采用数组+短除法实现,但问题。官方解法提供更优方案:1)逐位颠倒法;2)位运算分治法两种方法均实现O(1)时空复杂度,避免了数组法的缺陷,体现了二进制操作的高效性。
2026-03-01 15:39:31
882
1
原创 LeetCode 169. 多数元素 | 从 O (n²) 到 O (n),吃透三种核心解法
本文总结了解决多数元素问题的三种基础方法:多重集合法、哈希表法、排序法。
2026-02-27 17:25:41
623
原创 LeetCode 160. 相交链表 | 三种解法吃透核心逻辑(哈希表 + 双指针 + 长度对齐)
本文总结了三种解决相交链表问题的算法:哈希集合法、双指针法和长度对齐法。
2026-02-24 15:11:47
484
原创 反转链表:三种实现思路与细节梳理
反转链表虽然基础,但包含了链表操作的核心要点:边界判断:空链表、单节点链表直接返回指针移动顺序:避免断链与空指针访问尾节点必须置空,防止出现环迭代与递归各有适用场景,可根据需求选择扎实掌握这几种写法,能为更复杂的链表题目打下坚实基础。
2026-02-22 21:48:55
340
原创 mybash:简易 Shell 实现的设计思路与核心模块解析
本文介绍了基于C语言实现的简易Shell项目mybash,通过原生系统调用完成了cd、pwd、ls、kill、cp、cat等核心命令的功能开发。项目重点实现了命令行提示符设计、命令参数解析、内置/外置命令执行等核心模块,深入分析了Linux下进程管理、文件IO、信号处理等底层机制。
2026-02-22 21:05:09
881
原创 深入理解x86内存寻址:从8086实模式到IA-32段页式映射&Linux内核实现
本文深入解析x86 CPU内存寻址机制的发展历程,从8086实模式到80386保护模式,详细阐述了分段、分页机制的设计原理及其在Linux内核中的实现。
2026-02-19 16:37:39
861
原创 链表排序该选哪种算法?单向链表 & 双向链表最全选择指南
单链表优先选插入排序(简单且实用),进阶选归并排序;双向链表优先选快速排序(效率最高,适配双向指针结构);所有链表排序中,int 类型优先交换值(避免指针出错),复杂结构体考虑交换指针。
2026-02-13 21:26:24
448
原创 LeetCode 234.回文链表:从三种解法看链表操作的取舍
本文介绍了判断链表是否为回文链表的三种方法。第一种方法将链表值存入数组后进行回文检测,时间复杂度O(n),空间复杂度O(n);第二种方法使用快慢指针找到中点并反转后半部分链表进行比较,时间复杂度O(n),空间复杂度O(1);第三种方法采用递归实现。
2026-01-30 21:50:59
812
原创 fork、内存管理、虚拟内存、地址转换总结
在UNIX系统中,进程创建是通过内核系统调用fork()实现的,其本质是将父进程复制一份,生成子进程,且子进程与父进程共享部分资源,同时拥有独立标识和执行上下文。
2026-01-28 13:06:46
605
原创 LeetCode 203. 移除链表元素 | 从 4 次错误到最优解,吃透递归与迭代
本文总结了LeetCode203题"移除链表元素"的解题思路与优化过程。通过4次代码迭代,分析了链表操作的3个核心难点:头结点删除、连续相同值处理、空指针访问。对比了递归与迭代两种解法。
2026-01-23 20:56:08
611
原创 LeetCode 83. 删除排序链表中的重复元素 | 从踩坑到吃透链表指针
本文通过解决LeetCode 83题(删除排序链表中的重复元素),详细记录了从错误到优化的全过程。重点分析了空指针访问、哑结点使用和遍历逻辑等关键点,最终给出官方最优解。
2026-01-22 15:31:06
641
原创 LeetCode 21. 合并两个有序链表 | 链表入门,从野指针到哑结点,一次吃透
刚刚学完链表,因为每天上课以及还有其他作业,所以我决定——从今天开始每天打卡至少一道链表的题目。后续把链表的简单题做完,会将所有题再整理到一起,在那之前,每天应该之后更新一道题。
2026-01-21 20:48:05
616
原创 单链表四大经典算法总结 | 逆置、删倒数 n、环判断、环入口
本文系统整理了四种经典单链表算法题,涵盖链表逆置、删除倒数第N个结点、检测环和求环的第一个结点。每种问题提供多种解法思路,包括暴力法、哈希表、快慢指针等,并分析时间复杂度与空间复杂度。
2026-01-20 21:11:37
585
原创 Windows和Lunix的跨平台文件共享的实现
本文介绍了在Linux服务器上配置Samba共享服务的完整流程。首先需要创建共享目录并确保网络连通,然后安装Samba服务。
2026-01-16 15:04:05
585
原创 编译和链接
集成开发工具(如Visual Studio)将代码运行的预处理、编译、汇编和链接过程合并为“构建”一步操作,隐藏了底层机制。实际上,代码运行需经历四个关键阶段:1)预处理处理头文件和宏定义;2)编译进行词法、语法分析并生成汇编代码;3)汇编转换为机器指令;4)链接处理模块间引用关系,完成地址修正。理解这些底层过程对掌握系统运行原理至关重要。《程序员的自我修养》详细阐述了这些编译链接机制。
2026-01-16 11:09:51
547
原创 LeetCode 733.图像渲染 | 深刻理解 DFS + BFS
本文通过图像渲染问题(LeetCode 733题)探讨了递归、DFS和BFS三种解法。首先分析了递归解法中的边界判断错误和颜色处理问题,并给出修正方案;然后详细介绍了DFS的标准实现方法,强调使用方向数组优化代码结构;最后讲解了BFS的队列实现方式。三
2026-01-16 09:22:49
587
原创 基础五子棋项目
本文介绍了一个基于VS和easyx插件开发的五子棋游戏实现过程。项目采用C语言编写,主要功能包括:1) 初始化棋盘并绘制星位;2) 实现精确落子功能;3) 胜负判断逻辑;4) 优化功能;5) 扩展功能。
2026-01-11 15:19:37
1073
原创 练题100天——DAY36:涉及哈希集合+利用文件的学生成绩管理系统
一个两道题,难度★★★~★★★★。第一道需要熟悉哈希集合的特征,第二题涉及文件的使用,所以有点困难。据上一次记录,又过了好多天,期末考也结束了,但是在12号之后有算法课,所以不知道能不能抽出时间来记录,这几天就多记录一点,之后就算不能刷力扣的题,也会试着记录下做作业题的过程。
2026-01-09 22:56:12
546
原创 LeetCode 697.数组的度 | 从暴力超时到最优解法
本文记录了求解LeetCode 697题(数组的度)的思考过程。最初采用暴力枚举法,最终采用三哈希表法,将时间复杂度优化至O(n)。有时转换思路比执着优化原有方法更有效,理解问题本质才是解题关键。
2026-01-02 23:09:41
633
原创 练题100天——DAY34:错误的集合+图片平滑器+最长连续递增序列
今天记录了3道题,难度范围:★~★★,因为后面两道都可以通过暴力法解答,并且官方也是使用的暴力法,所以难度为★。
2025-12-25 22:36:54
1045
原创 练题100天——DAY33:种花问题+三个数的最大乘积+子数组最大平均数Ⅰ
今天练了三道题,难度范围:★~★★★。一开始属于是玩一会练一会,所以没那么煎熬,也感觉没练多久,但是我还要复习期末考(倒),所以只写了两道题,就想先将题放一放,虽然感觉还能写一题的。是的,我一开始只写了两道题,后面真的还想写,就又写了第三题,没想到我居然会很想练题,不知道是不是不想复习,其实还想再写一题。
2025-12-22 22:26:50
957
原创 练题100天——DAY32:分糖果+最长和谐子序列+区间加法Ⅱ+最小索引总和
今天一共记录了四道题,难度范围:★~★★★,(第一题是昨天写的,其他题是今天写的),难度都是很大,不用绞尽脑汁想怎么解答,但是还是需要动点脑筋。
2025-12-21 20:13:24
640
原创 练题100天——DAY30:下一个更大的元素+键盘行
今天写了四道题!尽管前两道很简单(所以没放到标题里面)。难度范围:★~★★★,昨天最后一道困难题是打击到我了,但没关系,我自己会从简单题中找安慰(倒)。今天的主要收获:学到了单调栈的使用;认识了tolower函数和emplace_back函数其实收获不止这些,但我就是不知道怎么写出来,下次一定写得面面俱到。
2025-12-18 21:45:08
598
原创 练题100天——DAY29:岛屿的周长+寻找两个正序数组的中位数
今天的两道题都是有点硬的骨头,勉勉强强能做出来,但是想不到特定的解决方法,算法难度★★★★。深度优先算法和二分查找以为自己会,遇到这两道题算是给了我当头两棒:根本不知道何时用、怎么用深度优先算法,以及想了很久也没理解第二题的二分查找法。被原来的简单题迷得稀里糊涂,遇到困难题就知道世道的险恶了。
2025-12-17 22:32:51
682
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅