littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于Java的LeetCode刷题记录

项目简介

本项目是一个用于记录LeetCode刷题过程的Java代码集合。项目涵盖了多种数据结构和算法问题,旨在通过实践提升编程能力和算法思维。每个文件对应一个LeetCode问题,并提供了详细的代码实现和功能解释。

项目的主要特性和功能

数据结构

  • 单链表:运用双指针技巧解决链表相关问题,可实现链表反转、按组反转、判断回文等操作。
  • 数组:使用快慢指针、滑动窗口、左右指针等技巧,解决数组去重、最小覆盖子串、二分搜索等多种问题,还能实现数组反转、前缀和计算等操作。
  • 二叉树:包含前序、中序、后序及层序遍历,可根据遍历序列构造二叉树,解决序列化、最近公共祖先等问题。
  • N叉树:实现前序、后序遍历。
  • 二叉搜索树:具备插入、删除、搜索等基本操作,可根据序列构造二叉搜索树,应用于快速排序。
  • 完全二叉树(满二叉树):可计算节点个数、进行插入操作。
  • :实现遍历、环检测、拓扑排序、二分图检测等多种图算法。

设计数据结构

  • LRU和LFU:实现LRU缓存和LFU缓存。
  • 栈队列:用栈实现队列、用队列实现栈,使用单调栈和单调队列解决相关问题。
  • 二叉堆:实现数据流的中位数。
  • 前缀树:实现Trie树的基本操作和应用。

字符串

  • KMP算法:实现字符串的匹配算法。

动态规划

  • 基本技巧:解决斐波那契数、最长递增子序列、0 - 1背包等多种问题。
  • 贪心算法:解决区间调度、跳跃游戏等问题。

必知必会的算法技巧

  • 回溯算法:解决全排列、N皇后等多种问题。
  • BFS(宽度优先遍历):解决二叉树的最小深度、打开转盘锁等问题。
  • 数学运算技巧:包含位运算、随机算法等多种数学运算技巧。

安装使用步骤

  1. 复制项目bash
  2. 导入项目:使用IDE(如IntelliJ IDEA或Eclipse)导入项目,确保项目结构正确,所有依赖项已安装。
  3. 运行测试:在IDE中运行主类P797_AllPathsFromSourceToTarget或其他包含main方法的类,查看输出结果,验证代码的正确性。
  4. 修改和扩展:可根据需要修改现有代码或添加新的LeetCode问题解决方案,确保代码风格一致,注释清晰。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】