欢迎来到我的个人算法练习仓库。本仓库包含各种算法题目的练习及其 Java 实现,并按不同的算法和数据结构分类组织。
本目录包含与数组算法相关的练习题目。数组是计算机科学中最基本的数据结构之一。
-
leetCode 地址: https://leetcode.cn/problems/two-sum/
-
题目描述: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
-
解题: 两数之和
-
核心思路: 通过哈希表来解决
- LeetCode 地址: https://leetcode.cn/problems/3sum/
- 题目描述: 给你一个整数数组
nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != j、i != k且j != k,同时还满足nums[i] + nums[j] + nums[k] == 0。 - 解题: 三数之和
- 核心思路
- 暴力解法
- 哈希
- 夹逼
- 双指针技巧
- 滑动窗口
- 数组中的二分查找
- 排序算法
- ...
本目录包含与链表算法相关的练习题目。链表是理解动态数据结构的基础。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 单链表操作
- 双链表操作
- 环检测
- ...
本目录包含与树算法相关的练习题目。树是计算机科学中广泛使用的层次结构数据结构。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 二叉树遍历
- 二叉搜索树
- AVL 树
- ...
本目录包含与图算法相关的练习题目。图用于建模对象之间的关系。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 深度优先搜索 (DFS)
- 广度优先搜索 (BFS)
- Dijkstra 算法
- ...
本目录包含与排序算法相关的练习题目。排序是许多应用程序中最基本的操作。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 快速排序
- 归并排序
- 堆排序
- ...
本目录包含与搜索算法相关的练习题目。搜索用于从数据结构中检索信息。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 二分查找
- 线性查找
- 指数查找
- ...
本目录包含与动态规划相关的练习题目。动态规划是一种通过将问题分解为子问题来解决问题的技术。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 斐波那契数列
- 最长公共子序列
- 背包问题
- ...
本目录包含与递归相关的练习题目。递归是一种通过函数调用自身来解决问题的方法。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 阶乘计算
- 汉诺塔
- 递归树遍历
- ...
本目录包含与位操作相关的练习题目。位操作涉及直接操作位,并用于各种算法中。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 位与、位或、位异或
- 位移操作
- 计数位数
- ...
本目录包含与数学算法相关的练习题目。数学算法用于解决数论、几何和代数中的问题。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 最大公约数 (GCD)
- 素数生成
- 矩阵乘法
- ...
本目录包含与字符串算法相关的练习题目。字符串算法用于操作和分析文本。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- 字符串匹配
- 检测异位词
- 回文检查
- ...
本目录包含与回溯算法相关的练习题目。回溯是一种通过探索所有可能的选项来寻找解决方案的技术。
ExampleProblem1.java: 题目描述...ExampleProblem2.java: 题目描述...- ...
- N 皇后问题
- 数独求解
- 子集和问题
- ...
本目录包含与贪心算法相关的练习题目。贪心算法通过在每一步选择局部最优解来寻找全局最优解。