Skip to content

DengBoCong/Algorithm

Repository files navigation

Algorithm | Still work

记录LeetCode、牛客网、部分OJ上各种算法题的解法,尽可能的对每道题实现多种解法,展现在过程中解题思路。使用Java和Python两种语言编写题解,力求得心应手。(本项目只包含题解代码,如有精彩的题目将同步更新题解说明文章到

所有引用内容均为学习使用,如若冒犯或侵权,立即删改


可视化界面说明

老的目录结构可查看这里

  • 项目启动:需要在Python环境下启动
# 单线程启动
python server.py runserver

# 多线程启动
gunicorn server:app -c gunicorn.conf.py

# shell指令启动
sh run.sh
  • core目录下存放着核心的代码实现、题目、题解等,根据题目类别进行归类,其下面的tmp目录请忽略(保留的旧版本代码)
  • 代码目录最好使用英文命名,且其下的cpp、java、py、md文件必须与目录同命名,否则不会被解析到configs.json中,题解的md文件命名为在目录命名后加"_solution"示例:
TheSumOfTheTwoNumbers                                  题目所在目录
----TheSumOfTheTwoNumbers.cpp                          题目C++解法
----TheSumOfTheTwoNumbers.java                         题目Java解法
----TheSumOfTheTwoNumbers.py                           题目Python解法
----TheSumOfTheTwoNumbers.md                           题目
----TheSumOfTheTwoNumbers_solution.md                  题目解法
  • configs.json在启动时自动生成(更新),生成可视化界面相关数据(这样有利于加速访问,而不必每次访问时处理)。生成的可视化界面菜单是根据题目的md文件(譬如上述的TheSumOfTheTwoNumbers.md)配置生成的,并不是根据目录结构生成,配置规则如下:
$=title=$: 标题
$=class=$: 分类
$=origin=$: 题目来源
$=degree=$: 题目难度,Hard/Medium/Easy
$=link=$: 题目原题链接

题目列表

1.有序数组中的单一元素Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

2.矩阵中的幸运数Java解法 | Python解法):题目难度(简单),题目类型(数组_矩阵)

3.适合打劫银行的日子Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划_前缀和)

4.最长特殊序列 ⅠJava解法 | Python解法):题目难度(简单),题目类型(字符串)

5.最长特殊序列 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_哈希表_双指针_字符串_排序)

6.七进制数Java解法 | Python解法):题目难度(简单),题目类型(数学)

7.子数组范围和Java解法 | Python解法):题目难度(中等),题目类型(栈_数组_单调栈)

8.蜡烛之间的盘子Java解法 | Python解法):题目难度(中等),题目类型(数组_字符串_二分查找_前缀和)

9.各位相加Java解法 | Python解法):题目难度(简单),题目类型(数学_数论_模拟)

10.快乐数Java解法 | Python解法):题目难度(简单),题目类型(哈希表_数学_双指针)

11.得分最高的最小轮调Java解法 | Python解法):题目难度(困难),题目类型(数组_前缀和)

12.N 叉树的前序遍历Java解法 | Python解法):题目难度(简单),题目类型(栈_树_深度优先搜索)

13.二叉树的前序遍历Java解法 | Python解法):题目难度(简单),题目类型(栈_树_深度优先搜索_二叉树)

14.二叉树的中序遍历Java解法 | Python解法):题目难度(简单),题目类型(栈_树_深度优先搜索_二叉树)

15.二叉树的后序遍历Java解法 | Python解法):题目难度(简单),题目类型(栈_树_深度优先搜索_二叉树)

16.N 叉树的后序遍历Java解法 | Python解法):题目难度(简单),题目类型(栈_树_深度优先搜索)

17.N 叉树的层序遍历Java解法 | Python解法):题目难度(中等),题目类型(树_广度优先搜索)

18.统计最高分的节点数目Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_数组_二叉树)

19.寻找最近的回文数Java解法 | Python解法):题目难度(困难),题目类型(数学_字符串)

20.Z 字形变换Java解法 | Python解法):题目难度(中等),题目类型(字符串)

21.UTF-8 编码验证Java解法 | Python解法):题目难度(中等),题目类型(位运算_数组)

22.最多可达成的换楼请求数目Java解法 | Python解法):题目难度(困难),题目类型(位运算_数组_回溯_枚举)

23.两个列表的最小索引总和Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表_字符串)

24.相交链表Java解法 | Python解法):题目难度(简单),题目类型(哈希表_链表_双指针)

25.统计按位或能得到最大值的子集数目Java解法 | Python解法):题目难度(中等),题目类型(位运算_数组_回溯)

26.最优除法Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_动态规划)

27.增量元素之间的最大差值Java解法 | Python解法):题目难度(简单),题目类型(数组)

28.复数乘法Java解法 | Python解法):题目难度(中等),题目类型(数学_字符串_模拟)

29.全 O(1) 的数据结构Java解法 | Python解法):题目难度(困难),题目类型(设计_哈希表_链表_双向链表)

30.球会落何处Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_数组_动态规划_矩阵_模拟)

31.仅仅反转字母Java解法 | Python解法):题目难度(简单),题目类型(双指针_字符串)

32.计数质数Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_枚举_数论)

33.词典中最长的单词Java解法 | Python解法):题目难度(简单),题目类型(字典树_数组_哈希表_字符串_排序)

34.通过删除字母匹配到字典里最长单词Java解法 | Python解法):题目难度(中等),题目类型(数组_双指针_字符串_排序)

35.实现一个魔法字典Java解法 | Python解法):题目难度(中等),题目类型(设计_字典树_哈希表_字符串)

36.简易银行系统Java解法 | Python解法):题目难度(中等),题目类型(设计_数组_哈希表_模拟)

37.学生分数的最小差值Java解法 | Python解法):题目难度(简单),题目类型(数组_排序_滑动窗口)

38.根据二叉树创建字符串Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_字符串_二叉树)

39.寻找重复的子树Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_哈希表_二叉树)

40.最长的美好子字符串Java解法 | Python解法):题目难度(简单),题目类型(位运算_哈希表_字符串_滑动窗口)

41.至少有 K 个重复字符的最长子串Java解法 | Python解法):题目难度(中等),题目类型(哈希表_字符串_分治_滑动窗口)

42.网络空闲的时刻Java解法 | Python解法):题目难度(中等),题目类型(广度优先搜索_图_数组)

43.切棍子的最小成本Java解法 | Python解法):题目难度(困难),题目类型(数组_动态规划)

44.两数之和 IV - 输入 BSTJava解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉搜索树_哈希表_双指针_二叉树)

45.两数之和Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表)

46.如果相邻两个颜色均相同则删除当前颜色Java解法 | Python解法):题目难度(中等),题目类型(贪心_数学_字符串_博弈)

46.字符串的最大公因子Java解法 | Python解法):题目难度(简单),题目类型(数学_字符串)

47.两数相加Java解法 | Python解法):题目难度(中等),题目类型(递归_链表_数学)

48.字典序的第K小数字Java解法 | Python解法):题目难度(困难),题目类型(字典树)

49.反转链表Java解法 | Python解法):题目难度(简单),题目类型(递归_链表)

50.无重复字符的最长子串Java解法 | Python解法):题目难度(中等),题目类型(哈希表_字符串_滑动窗口)

51.图片平滑器Java解法 | Python解法):题目难度(简单),题目类型(数组_矩阵)

52.LRU 缓存Java解法 | Python解法):题目难度(中等),题目类型(设计_哈希表_链表_双向链表)

53.数组中的第K个最大元素Java解法 | Python解法):题目难度(中等),题目类型(数组_分治_快速选择_排序_堆(优先队列))

54.阶乘后的零Java解法 | Python解法):题目难度(中等),题目类型(数学)

55.K 个一组翻转链表Java解法 | Python解法):题目难度(困难),题目类型(递归_链表)

56.三数之和Java解法 | Python解法):题目难度(中等),题目类型(数组_双指针_排序)

57.棒球比赛Java解法 | Python解法):题目难度(简单),题目类型(栈_数组_模拟)

58.排序数组Java解法 | Python解法):题目难度(中等),题目类型(数组_分治_桶排序_计数排序_快速排序_堆排序_归并排序)

59.找出缺失的观测数据Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_模拟)

60.最大子数组和Java解法 | Python解法):题目难度(简单),题目类型(数组_分治_动态规划)

61.合并两个有序链表Java解法 | Python解法):题目难度(简单),题目类型(递归_链表)

62.二叉树的层序遍历Java解法 | Python解法):题目难度(中等),题目类型(数_广度优先搜索_二叉树)

63.环形链表Java解法 | Python解法):题目难度(简单),题目类型(哈希表_链表_双指针)

64.买卖股票的最佳时机Java解法 | Python解法):题目难度(简单),题目类型(数组_动态规划)

65.二叉树的锯齿形层序遍历Java解法 | Python解法):题目难度(中等),题目类型(数_广度优先搜索_二叉树)

66.合并两个有序数组Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针_排序)

67.有效的括号Java解法 | Python解法):题目难度(简单),题目类型(栈_字符串)

68.交替位二进制数Java解法 | Python解法):题目难度(简单),题目类型(位运算)

69.二叉树的最近公共祖先Java解法 | Python解法):题目难度(中等),题目类型(数_深度优先搜索_二叉树)

70.最长回文子串Java解法 | Python解法):题目难度(中等),题目类型(字符串_动态规划)

71.搜索旋转排序数组Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

72.考试的最大困扰度Java解法 | Python解法):题目难度(中等),题目类型(字符串_二分查找_前缀和_滑动窗口)

73.岛屿数量Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_广度优先搜索_并查集_数组_矩阵)

74.全排列Java解法 | Python解法):题目难度(中等),题目类型(数组_回溯)

75.字符串相加Java解法 | Python解法):题目难度(简单),题目类型(数学_字符串_模拟)

76.找到处理最多请求的服务器Java解法 | Python解法):题目难度(困难),题目类型(贪心_数组_有序集合_堆(优先队列))

77.合并K个升序链表Java解法 | Python解法):题目难度(困难),题目类型(链表_分治_堆(优先队列)_归并排序)

78.自除数Java解法 | Python解法):题目难度(简单),题目类型(数学)

79.反转链表 IIJava解法 | Python解法):题目难度(中等),题目类型(链表)

80.螺旋矩阵Java解法 | Python解法):题目难度(中等),题目类型(数学_矩阵_模拟)

81.二倍数对数组Java解法 | Python解法):题目难度(中等),题目类型(贪心_数组_哈希表_排序)

82.最长递增子序列Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_动态规划)

83.接雨水Java解法 | Python解法):题目难度(困难),题目类型(栈_数组_双指针_动态规划_单调栈)

84.二分查找Java解法 | Python解法):题目难度(简单),题目类型(数组_二分查找)

85.重排链表Java解法 | Python解法):题目难度(中等),题目类型(栈_递归_链表_双指针)

86.强密码检验器Java解法 | Python解法):题目难度(困难),题目类型(贪心_字符串_堆(优先队列))

87.用栈实现队列Java解法 | Python解法):题目难度(简单),题目类型(栈_设计_队列)

88.二叉树中的最大路径和Java解法 | Python解法):题目难度(困难),题目类型(树_深度优先搜索_动态规划_二叉树)

89.二叉树的右视图Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

90.爬楼梯Java解法 | Python解法):题目难度(简单),题目类型(记忆化搜索_数学_动态规划)

91.最小高度树Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_广度优先搜索_图_拓扑排序)

92.旋转字符串Java解法 | Python解法):题目难度(简单),题目类型(字符串_字符串匹配)

93.到达终点Java解法 | Python解法):题目难度(困难),题目类型(数学)

93.搜索旋转排序数组 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

94.寻找旋转排序数组中的最小值Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

95.删除链表的倒数第 N 个结点Java解法 | Python解法):题目难度(中等),题目类型(链表_双指针)

96.x 的平方根Java解法 | Python解法):题目难度(简单),题目类型(数学_二分查找)

97.删除排序链表中的重复元素 IIJava解法 | Python解法):题目难度(中等),题目类型(链表_双指针)

98.唯一摩尔斯密码词Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表_字符串)

99.合并区间Java解法 | Python解法):题目难度(中等),题目类型(数组_排序)

100.编辑距离Java解法 | Python解法):题目难度(中等),题目类型(数组_排序)

101.寻找两个正序数组的中位数Java解法 | Python解法):题目难度(困难),题目类型(数组_二分查找_分治)

102.统计各位数字都不同的数字个数Java解法 | Python解法):题目难度(中等),题目类型(数学_动态规划_回溯)

103.字符串转换整数 (atoi)Java解法 | Python解法):题目难度(中等),题目类型(字符串)

104.排序链表Java解法 | Python解法):题目难度(中等),题目类型(链表_双指针_分治_排序_归并排序)

105.写字符串需要的行数Java解法 | Python解法):题目难度(简单),题目类型(数组_字符串)

106.链表中倒数第k个节点Java解法 | Python解法):题目难度(简单),题目类型(链表_双指针)

107.最长公共子序列Java解法 | Python解法):题目难度(中等),题目类型(字符串_动态规划)

108.括号生成Java解法 | Python解法):题目难度(中等),题目类型(字符串_动态规划_回溯)

109.O(1) 时间插入、删除和获取随机元素Java解法 | Python解法):题目难度(中等),题目类型(设计_数组_哈希表_数学_随机化)

110.缺失的第一个正数Java解法 | Python解法):题目难度(困难),题目类型(数组_哈希表)

111.下一个排列Java解法 | Python解法):题目难度(中等),题目类型(数组_双指针)

112.最富有客户的资产总量Java解法 | Python解法):题目难度(简单),题目类型(数组_矩阵)

113.颠倒字符串中的单词Java解法 | Python解法):题目难度(中等),题目类型(双指针_字符串)

114.复原 IP 地址Java解法 | Python解法):题目难度(中等),题目类型(字符串_回溯)

115.从前序与中序遍历序列构造二叉树Java解法 | Python解法):题目难度(中等),题目类型(树_数组_哈希表_分治_二叉树)

116.最大回文数乘积Java解法 | Python解法):题目难度(困难),题目类型(数学)

117.滑动窗口最大值Java解法 | Python解法):题目难度(困难),题目类型(队列_数组_滑动窗口_单调队列_堆(优先队列))

118.最小覆盖子串Java解法 | Python解法):题目难度(困难),题目类型(哈希表_字符串_滑动窗口)

119.平衡二叉树Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_二叉树)

120.二叉树的最大深度Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

121.最常见的单词Java解法 | Python解法):题目难度(简单),题目类型(哈希表_字符串_计数)

122.求根节点到叶节点数字之和Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_二叉树)

123.最小栈Java解法 | Python解法):题目难度(简单),题目类型(栈_设计)

124.二叉树的直径Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_二叉树)

125.最长有效括号Java解法 | Python解法):题目难度(困难),题目类型(栈_字符串_动态规划)

126.字典序排数Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_字典树)

127.验证二叉搜索树Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_二叉搜索树_二叉树)

128.字符的最短距离Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针_字符串)

129.路径总和 IIJava解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_回溯_二叉树)

130.对称二叉树Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

131.文件的最长绝对路径Java解法 | Python解法):题目难度(中等),题目类型(栈_深度优先搜索_字符串)

132.随机数索引Java解法 | Python解法):题目难度(中等),题目类型(水塘抽样_哈希表_数学_随机化)

133.三维形体投影面积Java解法 | Python解法):题目难度(简单),题目类型(几何_数组_数学_矩阵)

134.比较版本号Java解法 | Python解法):题目难度(中等),题目类型(双指针_字符串)

135.子集Java解法 | Python解法):题目难度(中等),题目类型(位运算_数组_回溯)

136.太平洋大西洋水流问题Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_广度优先搜索_数组_矩阵)

137.按奇偶排序数组Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针_排序)

138.子集 IIJava解法 | Python解法):题目难度(中等),题目类型(位运算_数组_回溯)

139.最小差值 IJava解法 | Python解法):题目难度(简单),题目类型(数组_数学)

140.用 Rand7() 实现 Rand10()Java解法 | Python解法):题目难度(中等),题目类型(数学_拒绝采样_概率与统计_随机化)

141.字符串相乘Java解法 | Python解法):题目难度(中等),题目类型(数学_字符串_模拟)

142.两棵二叉搜索树中的所有元素Java解法 | Python解法):题目难度(中等),题目类型(数_深度优先搜索_二叉搜索树_二叉树_排序)

143.零钱兑换Java解法 | Python解法):题目难度(中等),题目类型(广度优先搜索_数组_动态规划)

144.最低票价Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

145.最小路径和Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划_矩阵)

146.标签验证器Java解法 | Python解法):题目难度(困难),题目类型(栈_字符串)

147.回文链表Java解法 | Python解法):题目难度(简单),题目类型(栈_递归_链表_双指针)

148.路径总和Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

149.最长重复子数组Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_动态规划_滑动窗口_哈希函数_滚动哈希)

150.多数元素Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表_分治_计数_排序)

151.求众数 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_哈希表_计数_排序)

152.重新排列日志文件Java解法 | Python解法):题目难度(简单),题目类型(数组_字符串_排序)

153.旋转图像Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_矩阵)

154.翻转二叉树Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜素_广度优先搜索_二叉树)

155.组合总和Java解法 | Python解法):题目难度(中等),题目类型(数组_回溯)

156.在排序数组中查找元素的第一个和最后一个位置Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

157.找出游戏的获胜者Java解法 | Python解法):题目难度(中等),题目类型(递归_队列_数组_数学_模拟)

158.圆圈中最后剩下的数字Java解法 | Python解法):题目难度(简单),题目类型(递归_数学)

159.删除排序链表中的重复元素Java解法 | Python解法):题目难度(简单),题目类型(链表)

160.最大正方形Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划_矩阵)

161.乘积小于 K 的子数组Java解法 | Python解法):题目难度(中等),题目类型(数组_滑动窗口)

162.乘积最大子数组Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

163.和为 K 的子数组Java解法 | Python解法):题目难度(中等),题目类型(数组_哈希表_前缀和)

164.最近的请求次数Java解法 | Python解法):题目难度(简单),题目类型(设计_队列_数据流)

165.最大加号标志Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

166.最小基因变化Java解法 | Python解法):题目难度(中等),题目类型(广度优先搜索_哈希表_字符串)

167.数组中重复的数据Java解法 | Python解法):题目难度(中等),题目类型(数组_哈希表)

168.找到所有数组中消失的数字Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表)

169.寻找峰值Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找)

170.山脉数组的峰顶索引Java解法 | Python解法):题目难度(简单),题目类型(数组_二分查找)

171.猫和老鼠 IIJava解法 | Python解法):题目难度(困难),题目类型(广度优先搜索_图_记忆化搜索_数学_动态规划_博弈)

172.不同路径Java解法 | Python解法):题目难度(中等),题目类型(数学_动态规划_组合数学)

173.不同路径 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_动态规划_矩阵)

174.地下城游戏Java解法 | Python解法):题目难度(困难),题目类型(数组_动态规划_矩阵)

175.序列化和反序列化二叉搜索树Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_广度优先搜索_设计_二叉搜索树_字符串_二叉树)

176.最长连续序列Java解法 | Python解法):题目难度(中等),题目类型(并查集_数组_哈希表)

177.搜索二维矩阵 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_分治_矩阵)

178.搜索二维矩阵Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_矩阵)

179.删列造序Java解法 | Python解法):题目难度(简单),题目类型(数组_字符串)

180.岛屿的最大面积Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_广度优先搜索_并查集_数组_矩阵)

181.岛屿的周长Java解法 | Python解法):题目难度(简单),题目类型(深度优先搜索_广度优先搜索_数组_矩阵)

182.面试题 01.05. 一次编辑Java解法 | Python解法):题目难度(中等),题目类型(双指针_字符串)

183.贴纸拼词Java解法 | Python解法):题目难度(困难),题目类型(位运算_动态规划_回溯_状态压缩)

184.字符串解码Java解法 | Python解法):题目难度(中等),题目类型(栈_递归_字符串)

185.两两交换链表中的节点Java解法 | Python解法):题目难度(中等),题目类型(递归_链表)

186.最大三角形面积Java解法 | Python解法):题目难度(简单),题目类型(几何_数组_数学)

187.基本计算器 IIJava解法 | Python解法):题目难度(中等),题目类型(栈_数学_字符串)

188.二叉树最大宽度Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

189.只出现一次的数字Java解法 | Python解法):题目难度(简单),题目类型(位运算_数)

190.买卖股票的最佳时机 IIJava解法 | Python解法):题目难度(中等),题目类型(贪心_数组_动态规划)

191.面试题 04.06. 后继者Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_二叉搜索树_二叉树)

192.二叉搜索树与双向链表Java解法 | Python解法):题目难度(中等),题目类型(栈_树_深度优先搜索_二叉搜索树_链表_二叉树_双向链表)

193.最少移动次数使数组元素相等 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_数学_排序)

194.最小操作次数使数组元素相等Java解法 | Python解法):题目难度(简单),题目类型(数组_数学)

195.寻找右区间Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_排序)

196.复制带随机指针的链表Java解法 | Python解法):题目难度(中等),题目类型(哈希表_链表)

197.打家劫舍Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

198.打家劫舍 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

199.在长度 2N 的数组中找出重复 N 次的元素Java解法 | Python解法):题目难度(简单),题目类型(数组_哈希表)

200.移动零Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针)

201.移除元素Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针)

202.长度最小的子数组Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_前缀和_滑动窗口)

203.我能赢吗Java解法 | Python解法):题目难度(中等),题目类型(位运算_记忆化搜索_数学_动态规划_状态压缩_博弈)

204.二叉树的序列化与反序列化Java解法 | Python解法):题目难度(困难),题目类型(树_深度优先搜索_广度优先搜索_设计_字符串_二叉树)

205.为高尔夫比赛砍树Java解法 | Python解法):题目难度(困难),题目类型(广度优先搜索_数组_矩阵_堆(优先队列))

206.剑指 Offer 09. 用两个栈实现队列Java解法 | Python解法):题目难度(简单),题目类型(栈_设计_队列)

207.剑指 Offer 54. 二叉搜索树的第k大节点Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_二叉搜索树_二叉树)

208.二叉树的完全性检验Java解法 | Python解法):题目难度(中等),题目类型(树_广度优先搜索_二叉树)

209.单值二叉树Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

210.移掉 K 位数字Java解法 | Python解法):题目难度(中等),题目类型(栈_贪心_字符串_单调栈)

211.面试题 17.11. 单词距离Java解法 | Python解法):题目难度(中等),题目类型(数组_字符串)

212.删除最外层的括号Java解法 | Python解法):题目难度(简单),题目类型(栈_字符串)

213.单词拆分Java解法 | Python解法):题目难度(中等),题目类型(字典树_记忆化搜索_哈希表_字符串_动态规划)

214.单词拆分 IIJava解法 | Python解法):题目难度(困难),题目类型(字典树_记忆化搜索_哈希表_字符串_动态规划_回溯)

215.验证IP地址Java解法 | Python解法):题目难度(中等),题目类型(字符串)

216.剑指 Offer 10- II. 青蛙跳台阶问题Java解法 | Python解法):题目难度(简单),题目类型(记忆化搜索_数学_动态规划)

217.零钱兑换 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

218.从根到叶的二进制数之和Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_二叉树)

219.课程表Java解法 | Python解法):题目难度(中等),题目类型(深度优先搜索_广度优先搜索_图_拓扑排序)

220.火柴拼正方形Java解法 | Python解法):题目难度(中等),题目类型(位运算_数组_动态规划_回溯_状态压缩)

221.剑指 Offer 51. 数组中的逆序对Java解法 | Python解法):题目难度(困难),题目类型(树状数组_线段树_数组_二分查找_分治_有序集合_归并排序)

222.有效的回旋镖Java解法 | Python解法):题目难度(简单),题目类型(几何_数组_数学)

223.每日温度Java解法 | Python解法):题目难度(中等),题目类型(栈_数组_单调栈)

224.统计不同回文子序列Java解法 | Python解法):题目难度(困难),题目类型(字符串_动态规划)

225.单词搜索Java解法 | Python解法):题目难度(中等),题目类型(数组_回溯_矩阵)

226.将字符串翻转到单调递增Java解法 | Python解法):题目难度(中等),题目类型(字符串_动态规划)

227.查找和替换模式Java解法 | Python解法):题目难度(中等),题目类型(数组_哈希表_字符串)

228.全排列 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_回溯)

229.高度检查器Java解法 | Python解法):题目难度(简单),题目类型(数组_计数排序_排序)

230.Pow(x, n)Java解法 | Python解法):题目难度(中等),题目类型(递归_数学)

231.螺旋矩阵 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_矩阵_模拟)

232.找出第 K 小的数对距离Java解法 | Python解法):题目难度(困难),题目类型(数组_双指针_二分查找_排序)

233.整数反转Java解法 | Python解法):题目难度(中等),题目类型(数学)

234.复写零Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针)

235.剑指 Offer II 029. 排序的循环链表Java解法 | Python解法):题目难度(中等),题目类型(链表)

236.剑指 Offer 40. 最小的k个数Java解法 | Python解法):题目难度(简单),题目类型(数组_分治_快速选择_排序_堆(优先队列))

237.出现次数最多的子树元素和Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_哈希表_二叉树)

238.调整数组顺序使奇数位于偶数前面Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针_排序)

239.跳跃游戏Java解法 | Python解法):题目难度(中等),题目类型(贪心_数组_动态规划)

240.二叉搜索树中第K小的元素Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_二叉搜索树_二叉树)

241.买卖股票的最佳时机 IIIJava解法 | Python解法):题目难度(困难),题目类型(数组_动态规划)

242.分发糖果Java解法 | Python解法):题目难度(困难),题目类型(贪心_数组)

243.找树左下角的值Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

244.删除有序数组中的重复项Java解法 | Python解法):题目难度(简单),题目类型(数组_双指针)

245.剑指 Offer 42. 连续子数组的最大和Java解法 | Python解法):题目难度(简单),题目类型(数组_分治_动态规划)

246.串联所有单词的子串Java解法 | Python解法):题目难度(困难),题目类型(哈希表_字符串_滑动窗口)

247.盛最多水的容器Java解法 | Python解法):题目难度(中等),题目类型(贪心_数组_双指针)

248.在每个树行中找最大值Java解法 | Python解法):题目难度(中等),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

249.删除二叉搜索树中的节点Java解法 | Python解法):题目难度(中等),题目类型(树_二叉搜索树_二叉树)

250.验证回文串Java解法 | Python解法):题目难度(简单),题目类型(双指针_字符串)

251.粉刷房子Java解法 | Python解法):题目难度(中等),题目类型(数组_动态规划)

252.奇偶链表Java解法 | Python解法):题目难度(中等),题目类型(链表)

253.黑名单中的随机数Java解法 | Python解法):题目难度(困难),题目类型(哈希表_数学_二分查找_排序_随机化)

254.用队列实现栈Java解法 | Python解法):题目难度(简单),题目类型(栈_设计_队列)

255.剑指 Offer 27. 二叉树的镜像Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_广度优先搜索_二叉树)

256.摆动排序 IIJava解法 | Python解法):题目难度(中等),题目类型(数组_分治_快速选择_排序)

257.TinyURL 的加密与解密Java解法 | Python解法):题目难度(中等),题目类型(设计_哈希表_字符串_哈希函数)

258.另一棵树的子树Java解法 | Python解法):题目难度(简单),题目类型(树_深度优先搜索_二叉树_字符串匹配_哈希函数)

259.剑指 Offer 04. 二维数组中的查找Java解法 | Python解法):题目难度(中等),题目类型(数组_二分查找_分治_矩阵)

260.质数排列Java解法 | Python解法):题目难度(简单),题目类型(数学)

261.打乱数组Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_随机化)

262.我的日程安排表 IJava解法 | Python解法):题目难度(中等),题目类型(设计_线段树_二分查找_有序集合)

263.二叉树展开为链表Java解法 | Python解法):题目难度(中等),题目类型(栈_树_深度优先搜索_链表_二叉树)

264.矩阵中的最长递增路径Java解法 | Python解法):题目难度(困难),题目类型(深度优先搜索_广度优先搜索_图_拓扑排序_记忆化搜索_动态规划)

265.数据流的中位数Java解法 | Python解法):题目难度(困难),题目类型(设计_双指针_数据流_排序_堆(优先队列))

266.轮转数组Java解法 | Python解法):题目难度(中等),题目类型(数组_数学_双指针)

267.玩筹码Java解法 | Python解法):题目难度(简单),题目类型(贪心_数组_数学)

268.解码方法Java解法 | Python解法):题目难度(中等),题目类型(字符串_动态规划)

269.寻找重复数Java解法 | Python解法):题目难度(中等),题目类型(位运算_数组_双指针_二分查找)

270.最长的斐波那契子序列的长度Java解法 | Python解法):题目难度(中等),题目类型(数组_哈希表_动态规划)

271.两数相加 IIJava解法 | Python解法):题目难度(中等),题目类型(栈_链表_数学)

272.实现 Trie (前缀树)Java解法 | Python解法):题目难度(中等),题目类型(设计_字典树_哈希表_字符串)

273.回文数Java解法 | Python解法):题目难度(简单),题目类型(数学)