# MyLeetCode **Repository Path**: du-weiyi2002/my-leet-code ## Basic Information - **Project Name**: MyLeetCode - **Description**: 我的算法练习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-06 - **Last Updated**: 2025-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyLeetCode #### 介绍 我的算法练习 #### 软件架构 软件架构说明 ## 🧠 **算法解题六步心法** ### **第1步:读题就像听人说话——搞清楚到底要什么** ``` ❌ 错误:扫一眼题目就开始写代码 ✅ 正确:像听朋友交代任务一样,确保完全理解 ``` - **用自己的话复述**:把题目要求用大白话说出来 - **明确输入输出**:给我什么?要返回什么? - **注意约束条件**:数据范围、特殊情况 - *例子:*“哦,就是要找一堆单词里,大家**开头相同的部分**” ### **第2步:举例就像试衣服——多试几个才知道合不合身** ``` ❌ 错误:只用题目给的例子 ✅ 正确:自己创造各种情况的例子 ``` - **正常情况**:用题目给的例子 - **边界情况**:空数组、单个元素、极端值 - **特殊情况**:全相同、全不同、有空的 - *例子:*试试 `["a"]`、`["","abc"]`、`["abc","abc","abc"]` ### **第3步:思路就像找路——先知道大致方向再出发** ``` ❌ 错误:直接开始写代码 ✅ 正确:先用中文或伪代码描述怎么做 ``` **问自己三个问题:** 1. **“最笨的方法怎么做?”**(暴力解法) *例子:*一个个单词比较,记录相同的前缀 2. **“哪里可以偷懒?”**(优化思路) *例子:*不用比较所有组合,以第一个为基准就行 3. **“什么时候可以提前结束?”**(终止条件) *例子:*发现不匹配就立即返回 ### **第4步:写代码就像搭积木——从简单到复杂** ``` ❌ 错误:试图一次性写完美代码 ✅ 正确:先写框架,再填细节 ``` **搭建顺序:** 1. **处理边界**:空数组、单个元素等特殊情况 2. **写主干逻辑**:先实现核心思路,用简单写法 3. **逐步细化**:补充细节,处理各种情况 4. **最后优化**:如果有时间,再考虑优化 ### **第5步:测试就像尝菜——边做边尝,别等糊了** ``` ❌ 错误:写完所有代码再测试 ✅ 正确:写一部分就测试一部分 ``` **测试策略:** - **小步快跑**:每写几行就运行一下 - **优先测边界**:先测容易出错的特殊情况 - **打印中间结果**:用 `println`看程序实际执行过程 ### **第6步:复盘就像下棋后复盘——总结经验** ``` ❌ 错误:AC(通过)后就关掉页面 ✅ 正确:总结收获,举一反三 ``` **复盘问题:** - 这道题的核心思想是什么? - 类似的问题可以用这种方法吗? - 我哪里卡住了?下次怎么避免? ## 💡 **日常练习建议** 1. **每题必用六步法**:强迫自己按流程思考 2. **一道题多种解法**:暴力→优化→最优解 3. **定期复习错题**:总结常见陷阱 4. **不要死磕**:30分钟没思路就看答案,但要看懂为什么 **记住:** 算法能力是**练出来**的,不是**看出来**的。刚开始慢没关系,坚持用这个方法,3个月后你会发现自己进步神速!