# leetcode **Repository Path**: elord/leetcode ## Basic Information - **Project Name**: leetcode - **Description**: leetcode同步代码 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LeetCode Java Solutions 这是一个使用 Java 语言实现的 LeetCode 算法题解仓库。仓库按照题目难度(简单、中等、困难)进行分类整理,包含了详细的解题思路和测试用例。 ## 项目特点 - **结构清晰**:按照题目难度分为三个级别,每个级别对应一个解决方案类 - **完整测试**:提供完整的单元测试,覆盖主要功能 - **工具支持**:包含常用的数据结构工具类(如链表节点 ListNode) - **详细注释**:核心方法提供详细的中文注释说明 ## 项目结构 ``` src/main/java/org/example/ ├── ListNode.java # 链表节点工具类 ├── Utils.java # 通用工具方法 ├── hard/ │ └── OtherSolution.java # 困难级别其他算法 └── mid/ ├── HardSolution.java # 困难级别算法(中等分类) ├── MidSolution.java # 中等难度算法 └── SimpleSolution.java # 简单难度算法 ``` ## 主要功能 ### 简单题解 (SimpleSolution) - 最后一个单词的长度计算 - 数组加一操作 - 二进制字符串相加 - 平方根计算 - 链表去重 ### 中等题解 (MidSolution) - 组合总和系列问题 - 字符串乘法 - 排列与排列去重 - 矩阵旋转 - 字母异位词分组 - 矩阵螺旋遍历 - 跳跃游戏 - 区间合并 - 矩阵生成 - 链表旋转 - 路径计数 - 简化路径 - 编辑距离 - 矩阵置零 - 二维数组搜索 - 颜色排序 - 组合问题 - 子集生成 - 单词搜索 ### 困难题解 (HardSolution/OtherSolution) - 缺失的第一个正数 - 接雨水问题 - N皇后问题 - 全排列序列 - 数字验证 - 文本左右对齐 - 最小窗口子串 - 最大矩形面积 ## 依赖配置 项目使用 Maven 进行构建和管理,需要以下环境: - JDK 8 或更高版本 - Maven 3.x 主要依赖: - JUnit 4.13.2(测试框架) ## 快速开始 1. 克隆项目: ```bash git clone https://gitee.com/elord/leetcode.git ``` 2. 使用 Maven 编译: ```bash mvn clean compile ``` 3. 运行测试: ```bash mvn test ``` ## 示例代码 **删除链表中的重复元素:** ```java ListNode head = new ListNode(1, new ListNode(1, new ListNode(2))); ListNode result = new SimpleSolution().deleteDuplicates(head); // 输出: 1 -> 2 ``` **计算组合总和:** ```java int[] candidates = {2, 3, 6, 7}; List> result = new MidSolution().combinationSum(candidates, 7); // 返回所有和为7的组合 ``` ## 测试覆盖 项目包含完整的单元测试,使用 JUnit 框架编写: - `HardSolutionTest` - 困难算法测试 - `MidSolutionTest` - 中等算法测试 - `SimpleSolutionTest` - 简单算法测试 运行测试: ```bash mvn test -Dtest=*Test ``` ## 工具类说明 ### ListNode 链表节点类,用于处理链表相关问题: ```java ListNode node = new ListNode(1); ListNode nodeWithNext = new ListNode(1, nextNode); ``` ### Utils 提供常用的辅助方法: - `generateListNodes(int... vals)` - 根据参数生成链表 - `printTwoDimensionArray(int[][] arr)` - 打印二维数组 ## 许可证 本项目仅供学习和交流使用。 ## 贡献指南 欢迎提交 Issue 或 Pull Request 改进代码质量。提交代码时请确保: - 遵循现有代码风格 - 添加必要的注释 - 提供对应的测试用例