- 博客(165)
- 收藏
- 关注
原创 Git 添加文件基本操作与简单原理
本文围绕 Git 添加与修改命令及底层原理展开,先以米雪儿的故事具象化工作区、暂存区、版本库的核心概念,再详解git status「git add「git commit等基础命令及撤销操作。深入剖析.git目录下 index、HEAD、refs、objects 的存储逻辑,梳理提交完整链路,总结新手常见误区。帮助读者从实操到原理理解 Git 版本控制核心,规避操作失误,掌握精准版本追溯的底层逻辑。
2026-01-19 16:06:06
452
原创 Git 程序员的时光机:Git的从零全平台安装配置与 Unity 项目配置 (含步骤截图)
本文深入浅出地介绍了版本控制神器 Git,将其比作程序员的“时光机”,旨在解决代码管理中“怕错”与“怕乱”的痛点。文章详细涵盖了 CentOS、Ubuntu 及 Windows 多平台的安装教程与全局配置,并通过 VS Code 和 Visual Studio 演示了初始化仓库及提交代码的实操流程。此外,特别针对 Unity 开发者提供了核心配置指南,包括元文件模式、序列化设置及 .gitignore 规则,有效避免资源冲突。文末附带高频命令速查表,帮助读者快速上手,实现高效、有序的项目管理与团队协作。
2026-01-12 22:23:46
820
2
原创 海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
本文是海致星图数据库内核研发实习生笔试的复盘第二篇,聚焦两道实际应用型算法题展开详解。其中哈夫曼编码题,先阐释哈夫曼编码核心概念(前缀编码、哈夫曼树、带权路径长度WPL),提炼出“WPL等于所有非叶子节点权重和”的关键结论,基于此设计了以最小堆(优先队列)为核心的高效解法,给出适配大数据量的C++代码(兼顾溢出处理、输入加速、边界场景),并分析时间/空间复杂度、总结溢出、堆类型错误等常见坑点;LRU缓存结构设计题,明确了初始化、get、set三大核心功能及O(1)时间复杂度要求
2026-01-11 18:44:16
709
4
原创 C++ 队列 宽度优先搜索 BFS 力扣 429. N 叉树的层序遍历 每日一题
本文针对力扣103题“二叉树的锯齿形层序遍历”提供了完整且深入的题解。作为BFS分层遍历的进阶高频面试题,题目核心是在基础层序遍历上增加“奇偶层反向”逻辑。文章先解析题目价值与面试考察重点,再详解“BFS分层收集+数组反转控制方向”的核心算法,通过表格模拟遍历过程具象化抽象逻辑,同时点明避坑要点。给出规范C++代码并对比队列实现效率,补充复杂度分析。整体结构从题目定位到代码落地层层递进,兼顾专业性与可读性,既适合夯实树遍历基础,也能满足面试备考需求,助力读者掌握“基础框架+定制化需求”的解题思维。
2026-01-11 16:28:44
772
2
原创 海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(1) 作答语言:C/C++ 链表 二叉树
考试方式是邮箱发送网址,进行牛客网线上笔试,四道编程题目,两道标准算法题目,两道实际应用型算法题,本篇博客分享前两道题。(四道题全部写在一起篇幅太大了)旋转链表问题的核心是通过构建环形链表简化旋转操作,结合取模运算优化旋转次数,同时需精准定位新头节点的前驱节点以断开环形结构,边界条件(空链表、单节点链表)的处理是避免错误的关键。二叉树分层打印的核心是利用队列实现广度优先遍历,通过记录每一轮循环前的队列大小区分不同层节点,确保每一轮仅处理当前层节点,子节点入队的时机和顺序决定了遍历的正确性。
2026-01-09 19:34:51
608
1
原创 C++ 队列 宽度优先搜索 BFS 力扣 429. N 叉树的层序遍历 C++ 每日一题
本文聚焦力扣429题N叉树的层序遍历,解析这一BFS经典应用的解题思路与实现。核心为基于队列的BFS+分层统计,通过记录循环前队列大小确定每层节点数,实现分层收集节点值,同时详解边界处理、队列操作等关键细节,给出C++实现代码并分析O(n)的时间与空间复杂度。还补充了DFS递归解法,通过记录节点层级完成分层遍历。本文还指出该题对夯实BFS基础、训练分层思维的价值,以及面试考察的核心方向,助力掌握树层级问题的通用解题思路。
2026-01-09 19:32:13
693
2
原创 C++ 栈 模拟 力扣 946. 验证栈序列 每日一题 题解
本文围绕力扣946.验证栈序列这道栈基础标杆题展开,先明确题目核心是判断按入栈序列pushed入栈后,能否通过任意时刻弹栈得到出栈序列popped。阐述题目考察栈“后进先出”特性与模拟思维的核心价值,及面试高频考察方向。详解“模拟栈操作”的算法原理,通过示例完整呈现入栈、循环检查弹栈的过程。给出简洁C++代码并分析复杂度,最后预告后续队列与BFS相关题目。全文聚焦核心考点,逻辑清晰,助力夯实数据结构基础与解题思维。
2026-01-03 21:51:48
1033
5
原创 C++ 栈 模拟 力扣 394. 字符串解码 每日一题 题解
本文围绕力扣 394. 字符串解码问题展开,核心讲解栈 + 分层解析的解题思路。先阐述题目价值与面试考察方向,再通过双栈(数字栈、字符串栈)分情况处理数字、括号、字母,结合实例完整模拟嵌套解析过程,补充关键细节与优化技巧,给出 C++ 代码实现及复杂度分析。旨在帮助读者夯实栈的应用基础,掌握嵌套结构处理逻辑,实现解题思路迁移。
2025-12-28 17:08:37
1042
2
原创 C++ 栈 模拟 力扣 227. 基本计算器 II 题解 每日一题
本文围绕力扣 227. 基本计算器 II 展开解析,阐述其提升字符串处理、栈应用及逻辑严谨性的学习价值。核心采用 “单栈 + 单符号” 简化思路处理运算优先级,将减法转加负数,乘除优先与栈顶计算,最终求和得结果。还详解了多位数解析、空格忽略等关键细节,给出 C++ 实现代码并分析时间 / 空间复杂度均为 O (n),帮助读者吃透题型并为后续同类问题铺垫。
2025-12-27 19:46:33
1050
2
原创 Linux 进程核心解析 fork()详解 多进程的创建与回收 C++
本文围绕 Linux 进程核心知识展开,系统讲解进程的定义、组成及与程序的区别,重点阐述 PCB(task_struct)及 PID、PPID 等核心属性。介绍了通过系统调用和终端命令获取进程 ID 的方法,详解 /proc 虚拟文件系统的作用与关键软链接。核心解析 fork () 创建子进程的 “一次调用、两次返回” 特性、父子进程的资源共享与独立性,以及多进程创建、调度与资源回收逻辑,对比 fork () 与 vfork ()、exec 系列等相关接口的差异。最后总结核心要点与编程实战注意事项,并配套练
2025-12-19 20:12:10
992
7
原创 C++ 栈 模拟 力扣 844. 比较含退格的字符串 题解 每日一题
本文聚焦力扣844题“比较含退格的字符串”,该题是栈在“撤销/回退类场景”的经典应用,延续并拓展了“字符串模拟栈”的核心技巧。文章先阐述题目背景与解题价值,强调其对问题转化、工具复用思维的强化作用;再详解算法原理,核心是通过栈模拟文本编辑器退格处理逻辑——普通字符入栈、退格字符弹栈(非空时),预处理后比较两字符串最终形态;随后给出简洁高效的C++实现,含代码解读与复杂度分析(时间O(n+m)、空间O(n+m)),并补充空间优化思路;最后总结栈思维的适用场景与解题技巧,为后续“表达式计算”等进阶题目铺垫,助力
2025-12-04 19:07:32
926
2
原创 C++ 栈 模拟 1047. 删除字符串中的所有相邻重复项 题解 每日一题
本文围绕力扣1047题“删除字符串中的所有相邻重复项”展开,核心讲解栈在相邻元素消除问题中的应用。首先分析题目特征,点明其对栈“后进先出”特性的精准适配,帮助读者建立“相邻匹配/抵消问题优先用栈”的思维。随后复习栈的构造、常用接口及适用场景,再通过栈的原始实现与字符串模拟栈的优化版本对比,阐述算法原理与优化思路。优化后的字符串版代码更简洁,时间和空间复杂度的常数因子更优。最后总结核心收获,强调栈的本质应用与优化思维,并预告后续相关习题,助力读者深化对栈数据结构的理解与实践。
2025-12-02 18:50:42
750
4
原创 C++ 高精度计算的讲解 模拟 力扣67.二进制求和 题解 每日一题
本文围绕高精度运算展开,指出C++原生类型存数范围与精度不足的问题,介绍高精度通过字符串/数组存数字每一位、模拟手算的核心思路。以力扣67题二进制求和为模板,详解加减乘类运算逻辑,单独拆解大数除法原理,提供对应C++代码实现,并附力扣练习题及下题预告。
2025-11-29 19:54:02
1085
2
原创 C++ 双指针 动态规划 力扣 5. 最长回文子串 每日一题 题解
本文用图解+实战代码深度拆解 LeetCode 5「最长回文子串」。先对比暴力/中心扩展/区间 DP 三种写法,给出可投产版 C++ 源码;再复盘长度计算、填表顺序、边界 case 四大易错点;最后补充面试反杀追问与 Manacher 优化路径,助你 10 分钟彻底吃透回文串,从容应对笔试与工程场景。
2025-11-25 20:13:13
965
原创 C++ 字符串 模拟 力扣 14. 最长公共前缀 每日一题 题解
本文围绕LeetCode 14“最长公共前缀”这一字符串经典入门题展开,解析其作为面试高频题的核心价值——夯实模拟思维、边界处理与代码优化能力。文章详细阐述横向遍历(两两对比)与纵向遍历(逐位验证)两种核心算法原理,提供完整可运行的C++代码,拆解关键细节与易错点,并进行复杂度分析。同时总结解题核心考点、思路迁移方向及常见错误,帮助读者不仅掌握本题解法,更能提升字符串处理能力,为后续复杂题型奠定基础,兼具入门指导与面试备考价值。
2025-11-23 18:01:04
830
2
原创 C++ 哈希表 容器组合应用 力扣 49. 字母异位词分组 每日一题 题解
本文聚焦力扣经典哈希表题目 “字母异位词分组”,系统解析解题思路与实现。该题是面试高频题,核心考察哈希表键值设计与泛式容器运用。文章先阐明题目价值与考察重点,再以 “找到异位词统一标识” 为突破口,详解 “排序 + 哈希表” 核心算法,给出完整 C++ 代码。同时剖析代码易错点、复杂度,补充计数法等优化思路与对比。内容兼顾基础与进阶,助力读者夯实容器使用能力,掌握哈希分组核心逻辑,实现解题思路迁移。
2025-11-20 18:07:18
1050
2
原创 C++ 哈希表 力扣 面试题 01.02. 判定是否互为字符重排 每日一题 题解
本文围绕力扣面试题 01.02 判定字符重排展开,该题是哈希表在字符频率统计场景的经典入门题,核心考察问题转化与数据结构选型能力。文章先明确题目要求——判断两字符串是否字符种类和数量一致仅排列不同,再分析暴力枚举全排列(O(n!)时间复杂度)的低效性,重点讲解最优的哈希频率统计思路:先通过长度不等快速排除无效情况,再用26位数组(对应小写字母)一次遍历增减抵消两字符串字符频率,最终检查数组是否全为0(O(n)时间、O(1)空间)。同时解读代码实现、复杂度及避坑点,对比两种算法差异,帮助巩固“用哈希表统计频率
2025-11-18 17:33:24
904
4
原创 C++ 哈希表 常用接口总结 力扣 1. 两数之和 每日一题 题解
本文围绕力扣经典入门题“两数之和”,系统讲解哈希表的应用逻辑。先介绍哈希表的本质、核心价值与使用场景,详解C++中unordered_map和unordered_set的常用接口,再针对题目展开算法分析——对比暴力枚举(O(n²)复杂度)与哈希表优化方案(O(n)复杂度),拆解“问题转化(两数和→单目标查找)”“键值设计(数值-下标映射)”“先查后插避重”等关键思路,给出完整代码实现与复杂度分析,点明容器使用误区与面试考点,帮助读者掌握“空间换时间”核心思维,为后续哈希表类题目打下基础。
2025-11-16 18:02:00
834
6
原创 C++ 面试高频考点 链表 迭代 递归 力扣 25. K 个一组翻转链表 每日一题 题解
本文深度拆解“K个一组翻转链表”这一链表进阶核心题,涵盖题目价值、算法原理、递归与迭代双实现及避坑指南。核心原理配合头插法翻转、组间衔接的动态GIF图,直观呈现指针变化过程,帮你快速攻克指针操作难点,两种实现的对比表更便于复习复盘。
2025-11-13 21:25:10
1030
1
原创 C++ 面试高频考点 链表 优先级队列 递归 力扣 23. 合并 K 个升序链表
本文聚焦力扣 23 题 “合并 K 个升序链表”,该题是面试高频考点,核心考察链表操作、算法优化等能力。文章先分析题目价值,随后详解三种解法:暴力解法通过迭代合并两链表实现,时间复杂度 O (nk²);优先级队列(小顶堆)借助堆筛选最小值节点,时间复杂度 O (nk log k);分治归并基于归并排序思想,拆分后合并子链表,时间复杂度同为 O (nk log k) 且空间更优。还对比各解法优劣、强调边界处理等避坑点,并给出思想迁移方向,最后预告下一道链表进阶难题,助力读者全面掌握相关考点。
2025-11-11 23:05:01
1089
1
原创 C++ 面试高频题 链表 模拟 力扣 143. 重排链表 题解 每日一题
本文聚焦力扣 143. 重排链表这道面试高频 “黄金综合题”,解析其将链表找中点、反转、合并三大核心操作整合的特性。题目要求将链表 L0→L1→…→Ln 重排为 L0→Ln→L1→Ln-1→…,且需实际交换节点而非修改值。核心思路是拆解问题:用快慢双指针定位中点,分割出前后半段;逆序后半段链表;再将前半段与逆序后的后半段交叉合并。文章详细拆解各步骤原理、配示意图与代码实现,补充边界处理、内存释放等面试关注细节,同时强化复杂问题拆解思维,助力读者夯实链表功底、适配面试考察需求。
2025-11-08 21:44:22
958
2
原创 C++ 链表 模拟 递归 迭代 力扣 24. 两两交换链表中的节点 题解 每日一题
本文围绕力扣 24 题 “两两交换链表中的节点” 展开,该题作为面试高频题,能强化多指针操作、递归与迭代转换及边界处理能力。文章详解两种解法:递归法通过拆解子问题,先处理后续链表再交换当前节点,明确终止条件与结果连接逻辑;迭代法借助虚拟头节点和多指针,循环处理每组节点交换,重点规避空指针问题。还分析了两种解法的时间与空间复杂度,总结核心技巧与面试注意事项,帮助读者扎实掌握链表操作,为解决复杂链表问题奠定基础。
2025-11-06 21:24:42
817
3
原创 C++ 算法题中链表的操作技巧总结 链表 模拟 力扣 2. 两数相加 题解 每日一题
本文围绕力扣 “两数相加” 链表题展开,先总结链表解题常用技巧,包括画图梳理思路、引入虚拟头节点、灵活定义节点及快慢双指针法。接着解析题目核心,即利用链表逆序存储特点模拟加法运算,重点处理进位和不同长度链表的遍历问题。通过对比繁琐与简洁两种代码实现,展现如何通过统一逻辑优化代码,并分析时间与空间复杂度。最后总结核心思路与关键技巧,强调题目对掌握链表操作的基础作用,同时预告后续 “两两交换链表中的节点” 题目解析。
2025-11-04 20:16:24
1056
4
原创 C++ 分治 归并排序解决问题 力扣 493. 反转对 题解 每日一题
本文聚焦力扣 493 题 “反转对”,核心讲解如何用归并排序优化解法,将暴力 O (n²) 复杂度降至 O (nlogn)。问题本质是寻找满足 i<j 且 nums [i]>2nums [j] 的数对,采用分治思想将反转对拆分为左子数组内部、右子数组内部及跨数组三类。关键创新在于拆分 “计数” 与 “排序” 阶段,利用子数组有序性,通过单向移动指针高效统计跨数组反转对,同时注意用 long long 避免 2nums [j] 的整数溢出问题。文章还对比了降序和升序两种排序计数思路,帮助读者深化对归并排序分治
2025-11-03 18:30:41
1082
2
原创 C++ 分治 归并排序解决问题 力扣 315. 计算右侧小于当前元素的个数 题解 每日一题
本文围绕力扣 315 题 “计算右侧小于当前元素的个数” 展开,核心讲解如何利用归并排序结合 “值 - 索引” 双数组同步排序的技巧解题。文章先分析题目价值,指出其对深化分治思想、掌握状态跟踪技巧的意义;接着阐述算法原理,重点说明将问题从 “全局计数” 转化为 “按原始位置计数” 的思路,以及通过降序排序、双数组绑定原始索引实现统计的核心逻辑;然后给出完整代码实现,解析关键细节;最后分析时间和空间复杂度,并总结思路迁移价值,为后续类似题目铺垫基础。
2025-11-01 20:29:08
1101
1
原创 C++ 分治 归并排序解决问题 力扣 LCR 170. 交易逆序对的总数 题解 每日一题
该博客聚焦力扣 LCR 170 交易逆序对问题,先阐明题目要求统计前高后低的股价对,指出暴力 O (n²) 解法超时局限。接着详解用归并排序解决的核心逻辑:将逆序对拆分为左子数组内部、右子数组内部、跨数组三类,利用归并 “拆分 - 合并” 特性,在合并有序子数组时高效统计跨数组逆序对,同时论证子数组排序不影响计数准确性。给出全局复用临时数组的优化代码,分析时间复杂度 O (nlogn)、空间复杂度 O (n),还提及该 “排序 + 统计” 思路的迁移价值,并预告后续 315 题讲解,为读者搭建从算法原理到实
2025-10-30 21:15:57
810
3
原创 C++ 分治 归并排序 归并排序VS快速排序 力扣 912. 排序数组 题解 每日一题
该文围绕力扣 912 题 “排序数组”,以归并排序为核心展开二刷解析。先说明二刷价值,即通过归并排序补充快排未覆盖的知识点,建立场景适配能力、拓宽算法优化思路并铺垫后续学习基础。接着阐述归并排序 “先拆分、再合并” 的原理,对比其与快排在分治顺序、遍历顺序等维度的差异。然后提供两种代码实现方案,分析临时数组复用策略及效率,还进行了时间和空间复杂度分析。最后总结归并排序要点,并预告下道相关题目。
2025-10-28 23:09:33
647
3
原创 C++ 分治 快速排序优化 三指针快排 力扣 面试题 17.14. 最小K个数 题解 每日一题
该文围绕力扣 “最小 K 个数” 问题展开,先点明题目核心是找出数组中最小的 k 个数,强调其学习价值,能打破全排序思维定式、衔接快速选择实战应用并覆盖工程边界场景。接着对比全排序法、堆选择法、计数排序法和快速选择法的逻辑、复杂度、优劣势及适用场景,指出快速选择法是通用最优解。随后详解快速选择法原理,给出 C++ 代码实现,分析函数无返回值的原因及优先选该方法的理由,还提示避坑要点,最后预告下一篇将讲解归并排序相关题目。
2025-10-26 20:37:04
903
1
原创 C++ 分治 快速选择算法 堆排序 TopK问题 力扣 215. 数组中的第K个最大元素 题解 每日一题
该文以 1024 程序员节为引,聚焦力扣 215 题 “数组中的第 K 个最大元素”。先点明题目价值,其为 Top K 问题经典代表,能深化算法思维、助于权衡解法及贴合工程场景。接着详解两种 O (n) 级核心算法:快速选择算法(基于三指针快排,通过区间划分与递归聚焦目标区间实现剪枝)与堆选择算法(用最小堆维护前 K 大元素),给出对应 C++ 代码,对比两者时空复杂度与适用场景,最后总结算法选择优先级、思维迁移方向及避坑指南,并预告下一道相关题目。
2025-10-24 19:55:45
1382
3
原创 C++ 分治 快速排序优化 三指针快排 力扣 912. 排序数组 题解 每日一题
本文围绕力扣 912 题 “排序数组” 展开,题目要求不依赖内置函数、以 O (nlogn) 时间复杂度和最小空间复杂度完成升序排序。常规快排在重复元素或有序数组场景下易超时,故引入三指针优化,将数组划分为 “小于、等于、大于” 基准值三区间,中间等值区间直接落位,避免无效递归。同时通过随机选基准值,进一步保障性能稳定。文中提供二路快排(参考)与三指针快排代码,分析时间复杂度(平均 O (nlogn))与空间复杂度(平均 O (logn))
2025-10-22 17:50:52
687
2
原创 C++ 分治 快排铺垫 三指针 力扣 75.颜色分类 题解 每日一题
该文围绕力扣 “颜色分类” 题展开,先点明题目要求原地排序含 0、1、2 的数组,再说明弄懂此题对面试提分、算法思维进阶等有重要意义。核心讲解三指针分治最优解,定义 left、i、right 指针划分区间,分析不同元素处理逻辑及细节,还给出计数统计、单指针两种解法的思路与代码。通过时间和空间复杂度对比凸显三指针法优势,最后总结解法选择、核心思维与易错点,并预告下道排序题。
2025-10-21 20:26:52
1108
5
原创 C++ 模拟题 力扣 1419. 数青蛙 题解 每日一题
该文围绕力扣 1419 “数青蛙” 题展开,先明确题目要求:判断蛙鸣字符串是否有效,有效则返回最少青蛙数,无效返回 - 1。核心是跟踪青蛙叫声阶段与复用,解析指出题目考察状态跟踪、多实现思路等,还提及隐蔽踩坑点。算法原理分三步,定义阶段与跟踪、处理字符流转状态、验证有效性。提供简单版和通用版两种代码实现,对比二者优缺与复杂度,最后总结模拟算法核心逻辑、技巧与避坑点,并预告下一题 “荷兰国旗问题”。
2025-10-20 09:53:51
928
3
原创 C++ 面试基础考点 模拟题 力扣 38. 外观数列 题解 每日一题
本文围绕力扣 “外观数列” 题展开,先明确题目核心是 “后项对前项进行行程长度编码”,如 countAndSay (4) 由 countAndSay (3)“21” 描述为 “1211”。解析指出该题是面试高频题,可考察基础能力、思维灵活性,还能帮规避编程错误、实现举一反三。算法上,先以双指针法实现单字符串描述,再通过递归(自顶向下,思路直白但有栈开销)或迭代(自底向上,无栈开销更高效)从 1 推导到 n。最后给出两种实现代码,对比其优缺点与复杂度,总结解题核心,并预告下一题 “数青蛙”。
2025-10-18 17:58:44
949
2
原创 C++ 模拟题 力扣 6. Z字形变换 题解 每日一题
该文围绕力扣 “Z 字形变换” 题展开,先明确题目核心是按 “Z” 路径排列字符串后逐行读取结果,而非实际绘图。分析其价值在于培养 “模拟转规律” 思维、处理典型边界条件及直观体现复杂度优化。先介绍模拟法思路及空间浪费、效率低的问题,再重点推导规律,得出周期 d=2*(numRows-1),第一行和最后一行字符位置为 “起始位置 + kd”,中间行为 “k+d 和 kd -k”。基于规律给出 C++ 代码实现,分析时间复杂度 O (n)、空间复杂度 O (n),最后总结核心思路与边界处理要点,并预告下一题
2025-10-15 16:39:43
1004
1
原创 定长内存池 思考实现过程 C++ 附源码
本文介绍了内存池的概念、定长内存池的设计实现及性能测试。内存池通过预分配大块内存自主管理,解决直接调用系统接口的效率低和碎片问题。定长内存池以模板类实现,优先分配回收的内存块,处理内存对齐和初始化,测试显示其在高频场景性能远超传统new/delete,提升约80%,适用于特定场景,也指出其适用边界及其他内存池方向。
2025-10-14 23:07:19
721
2
原创 C++ 模拟题 力扣495. 提莫攻击 题解 每日一题
该题解围绕“提莫攻击致艾希中毒”问题展开,先明确题目核心是计算重叠中毒区间总时长,指出其作为“区间重叠简化题”的练习价值,可培养场景转逻辑、边界处理能力。原理上通过比较相邻攻击间隔与中毒时长,分“不重叠(加完整时长)”“重叠(加间隔时长)”两类计算,强调最后一次攻击必加完整时长的边界点。代码实现采用O(n)时间、O(1)空间的线性遍历,兼顾简洁与高效,还补充遍历范围、特殊情况处理等细节。最后总结通用解题步骤,并预告同类“Z字形变换”题,引导举一反三。
2025-10-12 16:50:02
982
2
原创 C++ 模拟 力扣1576. 替换所有的问号 题解 每日一题
本文围绕模拟算法展开,先阐释其本质 —— 算法界的 “按图索骥”,思路易想但需注重代码落地,强调其是复杂算法的基础。接着给出模拟题解题思路,即把题目要求转化为清晰步骤,避免直接写代码导致卡壳。随后以力扣 1576. 替换所有的问号为例,说明该题作为模拟题模板的价值,覆盖常规逻辑与边界处理。解析算法原理,分一般情况和问号在开头 / 结尾的边界情况,还指出代码实现细节,如无需用哈希表,通过简单条件判断即可确定可用字母。
2025-10-10 13:15:53
826
2
原创 C++ 位运算 高频面试考点 力扣 面试题 17.19. 消失的两个数字 题解 每日一题
本文围绕力扣面试题 17.19 “消失的两个数字” 展开,先说明题目要求在 O (N) 时间、O (1) 空间内找出 1 到 N 中缺失的两个数,强调其是位运算经典组合题,融合 “丢失的数字” 与 “只出现一次的数字 Ⅲ” 逻辑,是面试高频考点。接着阐述算法原理,利用异或 “x^x=0”“0^x=x” 特性,先得两缺失数异或结果,再找结果最低为 1 的位拆分集合,最后分别异或两组得缺失数。还提供基础与优化版代码,对比优化点,分析其他解法优劣势,给出面试避坑指南,最后总结位运算题解题关键,文末预告下一题学习内
2025-10-08 20:25:52
964
1
原创 C++ 位运算 高频面试考点 力扣137. 只出现一次的数字 II 题解 每日一题
# 力扣137.只出现一次的数字II解析摘要本文围绕力扣137题展开,该题要求在整数数组中找出仅出现一次、其余元素均出现三次的元素,且需满足线性时间与常数空间复杂度。首先阐述题目价值,其是位运算经典题,能助理解二进制拆解问题与时空权衡,还可迁移至同类场景。接着详解两种解法:位运算通过统计二进制每一位1的总数,取余3确定目标位值,实现O(n)时间、O(1)空间的最优解;哈希表利用键值映射统计次数,虽逻辑直观但空间复杂度O(n)。最后对比方法,回顾知识点,并预告下一题及前置思考,为后续学习铺垫。
2025-10-07 19:17:30
821
3
wallpaper 壁纸提取工具 导入壁纸编辑器工具 内附视频讲解
2025-07-21
编程开发 C++ 学习 日期类 完整实现 练习项目
2025-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅