主要记录自己使用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 | 中等 |