主要记录自己使用Java语言系统性刷过的算法题。
源于一份pdf刷题书,需要该pdf可在我的github仓库下载,须知书里采用的是c++语法。
分模块刷题的收获更深刻,先在此感谢该pdf的作者。
| Title | 平均时间复杂度 | 空间复杂度 |
|---|---|---|
| BubbleSort | O(n^2) | O(1) |
| InsertionSort | O(n^2) | O(1) |
| SelectionSort | O(n^2) | O(1) |
| MergeSort | O(nlogn) | O(n) |
| QuickSort | O(nlogn) | O(nlogn) |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 455. 分发饼干 | FourFiveFive455.java | 简单 | |
| 606. 根据二叉树创建字符串 | SixZeroSix606.java | 简单 | |
| 452. 用最少数量的箭引爆气球 | FourFiveTwo452.java | 中等 | |
| 436. 寻找右区间 | FourThreeSix436.java | 中等 | ❎ |
| 406. 根据身高重建队列 | FourZeroSix406.java | 中等 | |
| 122. 买卖股票的最佳时机 II | OneTwoTwo122.java | 中等 | |
| 763. 划分字母区间 | SevenSixThree763.java | 中等 | |
| 665. 非递减数列 | SixSixFive665.java | 中等 | |
| 135. 分发糖果 | OneThreeFive135.java | 困难 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 88. 合并两个有序数组 | EightEight88.java | 简单 | |
| 680. 验证回文串 II | SixEightZero680.java | 简单 | |
| 524. 通过删除字母匹配到字典里最 | FiveTwoFour524.java | 中等 | |
| 142. 环形链表 II | OneFourTwo142.java | 中等 | |
| 167. 两数之和 II - 输入有序数组 | OneSisSeven167.java | 中等 | |
| 633. 平方数之和 | SixThreeThree633.java | 中等 | |
| 76. 最小覆盖子串 | SevenSix76.java | 困难 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 69. x 的平方根 | SixNine69.java | 简单 | |
| 81. 搜索旋转排序数组 II | EightOne81.java | 中等 | |
| 540. 有序数组中的单一元 | FiveFourZero540.java | 中等 | |
| 34. 在排序数组中查找元素的第一个和最后一个位置 | ThreeFour34.java | 中等 | |
| 154. 寻找旋转排序数组中的最小值 II | OneFiveFoue154.java | 困难 | |
| 4.寻找两个正序数组的中位数 | Four4.java | 困难 | ❎ |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 451. 根据字符出现频率排 | FoutFiveOne451.java | 中等 | |
| 75. 颜色分类 | SevenFive75.java | 中等 | |
| 347. 前 K 个高频元素 | ThreeFourSeven347.java | 中等 | |
| 215. 数组中的第K个最大元 | TwoOneFIve215.java | 中等 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 70. 爬楼梯 | SevenZero70.java | 简单 | |
| 542. 01 矩阵 | FiveFourTwo542.java | 中等 | |
| 413. 等差数列划分 | FourOneThreee413.java | 中等 | |
| 91. 解码方法 | NineOne91.java | 中等 | |
| 198. 打家劫舍 | OneNineEight198.java | 中等 | |
| 64. 最小路径和 | SixFour64.java | 中等 | |
| 279. 完全平方数 | TwoSevenNine279.java | 中等 | |
| 221. 最大正方形 | TwoTwoOne221.java | 中等 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 9. 回文数 | Nine9.java | 简单 | |
| 326. 3 的幂 | ThreeTwoSix326.java | 简单 | |
| 27. 移除元素 | TwoSeven27.java | 简单 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 461. 汉明距离 | FourSixOne461.java | 简单 | |
| 190. 颠倒二进制位 | OneNineZero190.java | 简单 | |
| 136. 只出现一次的数字 | OneThreeSix136.java | 简单 | |
| 342. 4的幂 | TheeFourTwo342.java | 简单 | |
| 268. 丢失的数字 | TwoSixEight268.java | 简单 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 448. 找到所有数组中消失 | FourFourEight448.java | 简单 | |
| 1. 两数之和 | One1.java | 简单 | |
| 217. 存在重复元素 | TwoOneSeven217.java | 简单 | |
| 232. 用栈实现队列 | TwoThreeTwo232.java | 简单 | |
| 225. 用队列实现栈 | TwoTwoFive225.java | 简单 | |
| 20. 有效的括号 | TwoZero20.java | 简单 | |
| 155. 最小栈 | OneFiveFive155.java | 中等 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 242. 有效的字母异位词 | TwoFourTwo242.java | 简单 |
| Title | Solution | Difficulty | flag |
|---|---|---|---|
| 83. 删除排序链表中的重复 | EightThree83.java | 简单 | |
| 234. 回文链表 | TwoThreeFour234.java | 简单 | |
| 206. 反转链表 | TwoZeroSix206.java | 简单 | |
| 160. 相交链表 | OneSixZero160.java | 简单 | |
| 148. 排序链表 | OneFourEight148.java | 中等 | |
| 19. 删除链表的倒数第 N 个 | OneNine19.java | 中等 | |
| 328. 奇偶链表 | ThreeTwoEight328.java | 中等 | |
| 2. 两数相加 | Two2.java | 中等 | |
| 24. 两两交换链表中的节点 | TwoFour24.java | 中等 |