- 博客(18)
- 收藏
- 关注
原创 指针与引用的区别及易错点
本文系统比较了C++中指针与引用的核心区别:指针存储变量地址,可重新赋值且允许空值;引用作为变量别名,须初始化且不可更改绑定对象。关键差异体现在内存占用(指针独立存储地址,引用通常被优化)、使用场景(指针适合动态/可能为空的情况,引用适合避免拷贝)和操作特性(指针支持算术运算,引用直接访问)。常见易错点包括指针的空解引用、野指针问题,以及引用的悬空引用风险。正确选择取决于需求:优先引用确保安全简洁,需要灵活性时选择指针。理解这些差异有助于编写更安全高效的C++代码。
2025-07-28 19:57:10
917
原创 GCC编译过程——从点击编译到运行发生了什么?
文件是 CPU 可以执行的二进制指令,但还不能独立运行。这是编译器做语法分析、语义分析、优化等关键工作的阶段。文件,仍为 C 代码,但是“展开后”的样子。包含了 CPU 可以理解的底层指令(如。将预处理后的 C 代码编译为汇编语言(将汇编代码翻译为机器码(
2025-07-24 00:04:55
334
原创 LC.2134 最少交换次数来组合所有的 1 II
摘要:本文介绍了一个解决「最少交换次数来组合所有的1II」问题的算法。通过统计数组中1的个数作为滑动窗口大小,在环形数组(原数组+复制数组)上寻找包含最多1的窗口,即窗口内0最少的个数。使用滑动窗口技术计算每个窗口中0的数量,并记录最小值作为结果。该方法的时间复杂度为O(n),空间复杂度为O(n),适用于处理环形数组的特殊情况。
2025-07-22 11:47:28
224
原创 LC.1652 拆炸弹
本文提出了两种滑动窗口方法解决LC1652拆炸弹问题。第一种方法通过确定窗口左端点,正k时从1开始,负k时从n+k开始,计算初始窗口和后继窗口的差值。第二种方法类似但跟踪右端点,正k时右端点为k+1,负k时为n。两种方案都使用滑动窗口技术,通过循环移动窗口并更新和值来避免重复计算,时间复杂度均为O(n),空间复杂度O(1)。核心在于正确处理k的正负情况和窗口边界条件。
2025-07-22 09:56:00
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅