自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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天——DAY31:相对名次+数组拆分+重塑矩阵

今天三道题,难度范围:★~★★★,都不是很难的题,可能会需要动一动脑筋。

2025-12-19 20:03:18 1108

原创 练题100天——DAY30:下一个更大的元素+键盘行

今天写了四道题!尽管前两道很简单(所以没放到标题里面)。难度范围:★~★★★,昨天最后一道困难题是打击到我了,但没关系,我自己会从简单题中找安慰(倒)。今天的主要收获:学到了单调栈的使用;认识了tolower函数和emplace_back函数其实收获不止这些,但我就是不知道怎么写出来,下次一定写得面面俱到。

2025-12-18 21:45:08 598

原创 练题100天——DAY29:岛屿的周长+寻找两个正序数组的中位数

今天的两道题都是有点硬的骨头,勉勉强强能做出来,但是想不到特定的解决方法,算法难度★★★★。深度优先算法和二分查找以为自己会,遇到这两道题算是给了我当头两棒:根本不知道何时用、怎么用深度优先算法,以及想了很久也没理解第二题的二分查找法。被原来的简单题迷得稀里糊涂,遇到困难题就知道世道的险恶了。

2025-12-17 22:32:51 682

原创 练题100天——DAY28:找消失的数字+分发饼干

今天记录了两道题,难度范围:★~★★。想到解决办法都不困难,想到奇招挺困难的。

2025-12-16 23:20:42 786

空空如也

空空如也

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

TA关注的人

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