所有题目源代码地址:
Leetcode Java版学习记录汇总
- 便于查询
Java版题目列表:
题号 | 题目 | 思想或类型 |
---|---|---|
1 | 两数之和 | 暴力破解 |
2 | 两数相加 | 单项链表 |
3 | 无重复字符的最长子串 | HashMap |
4 | 寻找两个有序数组的中位数 | 数组、双指针 |
5 | 最长回文子串 | 数组、双指针 |
6 | Z 字形变换 | 数组 |
7 | 整数翻转 | |
8 | 字符串转换整数 (atoi) | 字符串 |
9 | 回文数 | |
10 | 正则表达式匹配 | 递归 |
11 | 盛最多水的容器 | 数组、双指针 |
12 | 整数转罗马数字 | HashMap |
13 | 罗马数字转整数 | HashMap |
14 | 最长公共前缀 | 暴力破解 |
15 | 三数之和 | 数组、三指针 |
16 | 最接近的三数之和 | 数组、三指针 |
17 | 电话号码的字母组合 | 暴力破解 |
18 | 四数之和 | 数组、四指针 |
19 | 删除链表的倒数第N个节点 | 链表 |
20 | 有效的括号 | 栈 |
21 | 合并两个有序链表 | 链表 |
22 | 括号生成 | DFS |
23 | 合并K个排序链表 | 分治思想 |
24 | 两两交换链表中的节点 | 链表 |
25 | K 个一组翻转链表 | 链表 |
26 | 删除排序数组中的重复项 | 暴力破解 |
27 | 移除元素 | 暴力破解 |
28 | 实现 strStr() | 字符串 |
29 | 两数相除 | 二分查找、位运算 |
30 | 串联所有单词的子串 | 暴力破解 |
31 | 下一个排列 | 数组、二分查找、快排 |
32 | 最长有效括号 | 栈 |
33 | 搜索旋转排序数组 | 二分法 |
34 | 在排序数组中查找元素的第一个和最后一个位置 | 二分法 |
35 | 搜索插入位置 | 二分 |
36 | 有效的数独 | 暴力破解 |
37 | 组合总和 | 回溯 |
38 | 外观数列 | 递归、StringBuilder |
39 | 组合总和 | 递归、DFS、ArrayDeque |
40 | 组合总和II | 递归、DFS、ArrayDeque |
41 | 缺失的第一个正数 | 快排、数组 |
42 | 接雨水 | 动态规划、双指针 |
43 | 字符串相乘 | 字符数组 |
44 | 通配符匹配 | 动态规划 |
45 | 跳跃游戏 II | 贪心算法 |
46 | 全排列 | DFS |
47 | 全排列II | DFS+剪枝 |
48 | 旋转图像 | 数组 |
49 | 字母异位词分组 | HashMap |
50 | Pow(x, n) | 递归 |
51 | N皇后 | 回溯 |
52 | N皇后II | 回溯 |
53 | 有效的数独最大子序和 | 贪心算法、动态规划 |
54 | 螺旋矩阵 | 数组 |
55 | 跳跃游戏 | 暴力破解 |
56 | 合并区间 | lamda表达式、二维数组排序 |
57 | 插入区间 | 数组 |
58 | 最后一个单词的长度 | 数组 |
59 | 螺旋矩阵II | 数组 |
60 | 第k个排列 | StringBuilder、递归 |
61 | 旋转链表 | 链表 |
62 | 不同路径 | 排列组合、动态规划 |
63 | 不同路径 II | 动态规划 |
64 | 最短路径 | 动态规划 |
65 | 有效数字 | 有限自动机DFS |
66 | 加一 | 数组 |
67 | 二进制求和 | char运算(ASCII?) |
68 | 文本左右对齐 | 字符串数组 |
69 | x 的平方根 | 快排 |
70 | 爬楼梯 | 动态规划 |
71 | 简化路径 | 栈 |
72 | 编辑距离 | 动态规划、字符串 |
73 | 矩阵置零 | 数组 |
74 | 搜索二维矩阵 | 数组、二分法 |
75 | 颜色分类 | 数组、三指针、快排 |
76 | 最小覆盖子串 | 数组、双指针、滑动窗口 |
77 | 组合 | 递归 |
78 | 子集 | 回溯 |
79 | 单词搜索 | 回溯 |
80 | 删除排序数组中的重复项 II | 数组、双指针 |
81 | 搜索旋转排序数组 II | 数组、二分法 |
82 | 删除排序链表中的重复元素II | 单链表 |
83 | 删除排序链表中的重复元素 | 单链表 |
86 | 分隔链表 | 单链表 |
88 | 分隔链表 | 数组 |
90 | 子集 II | 回溯+去重 |
91 | 解码方法 | 动态规划 |
94 | 二叉树的中序遍历 | 递归、迭代、栈 |
101 | 对称二叉树 | 回溯+二叉树 |
102 | 二叉树的层序遍历 | 队列+二叉树 |
103 | 二叉树的锯齿形层次遍历 | 队列+二叉树 |
107 | 二叉树的层序遍历II | 队列+二叉树 |
121 | 买卖股票的最佳时机 | 贪心算法、动态规划 |
122 | 买卖股票的最佳时机 II | 贪心算法、动态规划 |
144 | 二叉树的前序遍历 | 递归、迭代、栈 |
145 | 二叉树的后序遍历 | 递归、迭代、栈 |
151 | 逆波兰表达式求值 | 栈 |
188 | *买卖股票的最佳时机 IV | 三维动态规划 |
209 | 长度最小的子数组 | 数组、双指针、滑动窗口 |
212 | *单词搜索II | 回溯、前缀树 |
231 | 2的幂 | 数学公式log |
240 | 搜索二维矩阵II | 数组、二分法 |
242 | 有效的字母异位词 | 字符数组 |
263 | 丑数 | 暴力破解 |
264 | 丑数 II | 动态规划 |
278 | 第一个错误的版本 | 二分查找 |
326 | 3的幂 | 数学公式log |
328 | 奇偶链表 | 数学公式log |
342 | 4的幂 | 数学公式log |
438 | 找到字符串中所有字母异位词 | 滑动窗口 |
567 | 字符串的排列 | 滑动窗口 |
611 | 有效三角形的个数 | 三指针 |
637 | 二叉树的层平均值 | 二叉树、队列 |
643 | 子数组最大平均数 I | 滑动窗口 |
725 | 分隔链表 | 单链表 |
832 | 翻转图像 | 数组 |
1200 | 最小绝对差 | 快排、数组 |
1417 | 重新格式化字符串 | 数组 |
Java版面试题记录汇总
序号 | 题目 | 算法思想 |
---|---|---|
29 | 顺时针打印矩阵 | 快排、数组 |
Leetcode C语言版学习记录汇总
- 数据结构复习顺便做的练习
C语言版题目列表:
序号 | 题目 | 算法思想 |
---|---|---|
21 | 合并两个有序链表 | 单链表 |
53 | 最大子序和 | 贪心算法 |
82 | 删除排序链表中的重复元素II | 单链表 |
83 | 删除排序链表中的重复元素 | 单链表 |
86 | 分隔链表 | 单链表 |
94 | 二叉树的中序遍历 | 二叉树、递归 |
101 | 对称二叉树 | 二叉树、递归 |
102 | 二叉树的层序遍历 | 二叉树、队列 |
107 | 二叉树的层序遍历II | 二叉树、队列 |
144 | 二叉树的前序遍历 | 二叉树、递归 |
145 | 二叉树的后序遍历 | 二叉树、递归 |
151 | 逆波兰表达式求值 | 栈 |
328 | 奇偶链表 | 单链表 |
725 | 分隔链表 | 单链表 |