Giter Club home page Giter Club logo

algorithm's Introduction

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解法):题目难度(简单),题目类型(数学)

algorithm's People

Contributors

dengbocong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.