【代码规范】leetcode 算法题

发布时间:2026/9/4 22:37:36
【代码规范】leetcode 算法题 一、编辑器 / 编译器认知刷题不需要懂工程搭建只需要记住力扣在线判题是云端标准化编译环境和本地 VS/Dev 运行结果存在细微差异很多本地不报错的代码线上会出问题下文全部是抹平差异的关键规则。二、编译 / 运行 / 调试 刷题真正用途编译报错语法、符号、头文件、参数问题硬性错误运行报错数组越界、空指针、栈溢出、内存超限调试算法刷题唯一找错手段只靠肉眼看代码,永远突破不了中等题、复杂模拟题。三、刷题五大高阶禁忌1.禁止局部开大数组栈溢出元凶2.禁止无符号数与 int 直接比较隐性逻辑错误3.禁止 int 承接大数累加、乘积静默溢出不报错但答案错4.禁止传参不写引用大数据必 TLE5.禁止默认初始化变量刷题局部变量脏数据导致随机 WA四、刷题最关键全局变量 vs 局部变量局部变量函数内存储在栈内存空间极小不支持大数组、大数据容器不会自动清零残留随机垃圾值全局变量函数外存储在堆内存空间极大刷题可随意开 1e6 数组默认自动初始化为 000递归、多测试用例场景极其稳定刷题铁律大数据、数组、DP 表、缓存变量全部全局定义五、力扣高频隐性 BUG 知识点1. 无符号长度坑vector.size()、string.length() 的返回值为 unsigned int无符号整型无符号数与普通 int 混合运算时整体会强制转为无符号类型负数会溢出变成极大正数经典错误示例i nums.size() - 2当数组长度不足 222 时nums.size()-2 变成超大正数下标越界稳妥写法强制转为普通整型 (int)(nums.size())。2. 运算符优先级隐性坑位运算 、|、、 的优先级低于加减运算3. 数据溢出静默报错int 数值极限约 2×1092×10⁹2×109力扣区间累加、数值相乘等题型极易超出范围溢出不会抛出报错、程序不会崩溃只会篡改最终答案隐蔽性极强刷题规范累加、乘积、极值计算统一使用 long long 类型。4. 传参拷贝超时元凶vector、string 等容器直接传参时会完整拷贝一份数据大数据场景会严重超时刷题通用标准写法只读参数搭配 const 引用格式示例Cfunc(const vectorint nums)5. 局部变量未初始化引发随机 WA全局变量会自动初始化为 000函数内局部变量是随机垃圾值大量题目出现 “样例正常、复杂用例答案错乱”根源就是数组、变量未手动初始化清零。六、单文件刷题 / 工程开发 思维分割力扣、竞赛刷题纯单文件思维无需头文件保护、无需多文件架构追求极致简洁、运行速度、调试便捷工程多文件规则完全不适用刷题场景新手不要混淆两套逻辑。七、正确刷题进阶路线放弃基础语法纠结吃透刷题隐性规则熟练断点调试定位数组越界、逻辑误差、溢出问题中等题型归类刷题积累模板化代码针对性规避超时、溢出、无符号坑逐步攻克递归、DFS、DP、双指针进阶题型https://leetcode.cn/discuss/post/4006510/gan-huo-suan-fa-shua-ti-bi-bei-yin-xing-t02n0https://leetcode.cn/discuss/post/4006510/gan-huo-suan-fa-shua-ti-bi-bei-yin-xing-t02n0