lingfeng5354 / Leetcode

Leetcode解题

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LeetCode解题

Leetcode解题记录及每种问题具有代表性题目的归纳,由于Leetcode早已从150题步入到了现在的千题时代,笔者尽可能的在这里做一个优选,希望此项目可以帮助小伙伴们更快的掌握对应的知识点~

每一道题目都可能有多种不同的解法,同时每一道题目也可能是多个知识点的综合,下面的归纳选取的是在一定程度上能体现其解法的题目

文档上方为原题链接 下方表格为解题与注释 方便小伙伴查看

欢迎star和fork 个人微信号:z530359861 寻找喜欢基础算法的小伙伴~

动态规划

   --寻路问题

       62.不同路径 63.不用路径II 64.最小路径和 120.三角形最小路径和 931.下降路径最小和

   --背包问题

       322.零钱兑换 416.分割等和子集

   --最长上升子序列问题

       139.单词拆分 300.最长上升子序列

   --最长公共子序列问题

       1143.最长公共子序列

   --智能存储

       304.二维区域和检索-矩阵不可变

   --其他

       72.编辑距离 132.分割回文串II 198.打家劫舍 213.打家劫舍II 221.最大正方形 309.最佳买卖股票时机含冷冻期 337.打家劫舍III 413.等差数列划分 1039.多边形三角剖分的最低分 1043.分割数组以得到最大和 1218. 最长定差子序列 1269.停在原地的方案数

   --遍历

      94.二叉树的中序遍历 102.二叉树的层次遍历 103.二叉树的锯齿形遍历 107.二叉树的层次遍历II

   --树的结构(具有天然的递归性质)

      100.相同的树 101.对称二叉树

   --深度优先搜索

      108.将有序数组转换为二叉搜索树 110.平衡二叉树 112.路径总和 124.二叉树中的最大路径和

链表

   --基础

      2.两数之和 160.相交链表 1171.从链表中删去总和值为零的连续结点

   --快慢指针

      141.环形链表 234.回文链表

   --反转链表

      206.反转链表

   --虚拟头结点

      203.移除链表元素

DFS

      113.路径总和II 130.被围绕的区域 200.岛屿数量 417.太平洋大西洋水流问题 473.火柴拼正方形 695.岛屿的最大面积 785.判断二分图 934.最短的桥 1254.统计封闭岛屿的数目

BFS

      542.01矩阵

建议这些题目都用DFS和BFS两种方法做一遍

拓扑排序

      207.课程表 210.课程表II

贪心

      122.买卖股票的最佳时机II 763.划分字母区间 1081.不同字符的最小序列 1247.交换字符使得字符串相等

滑动窗口

      3.无重复字符的最长子串 76.最小覆盖子串 209.长度最小的子数组 567.字符串的排列 1004.最大连续1的个数III 1234. 替换子串得到平衡字符串

回溯

      关键在于:不合适就退回上一步 然后通过约束条件 减少时间复杂度

      37.解数独 39.组合总和 40.组合总和II 46.全排列 47.全排列II 51.N皇后 77.组合 78.子集 90.子集II 131.分割回文串 216.组合总和III 691.贴纸拼词 842.将数组拆分成斐波那契数列 996.正方形数组的数目 1079.活字印刷 1219. 黄金矿工 1286. 字母组合迭代器 1239. 串联字符串的最大长度

哈希表

      1.两数之和 30.串联所有单词的子串 560.和为k的子数组 594.最长和谐子序列

排序

      179.最大数

二分查找

      33. 搜索旋转排序数组 81.搜索旋转数组II 240.搜索二维矩阵II 1281.使结果不超过阈值的最小除数

剪枝

      15.三数之和 18.四数之和

      1046.最后一块石头的重量

      1190.反转每对括号间的子串 1029.删除字符串中所有相邻重复项II

多线程

      1226.哲学家进餐

分治

       95.不同的二叉搜索树II 241.为运算表达式设计优先级

前缀和

       525.连续数组

数学

      LCP 3.机器人大冒险 119.杨辉三角II 357.计算各个位数不同的数字个数 391.完美矩形 401.二进制手表 1072.按列翻转得到最大行数 1217. 玩筹码 1253.重构2行二进制序列 1262. 可被三整除的最大和 1267.统计参与通信的服务器

设计

      155.最小栈 225.用队列实现栈 232.用栈实现队列

字符串

      165.比较版本号 402.移掉K位数字

信心题

       LCP 1.猜数字 1189.气球的最大数量 1221.分割平衡字符串 1288.有序数组中出现次数超过25%的元素

题目 难度 语言
LCP 1.猜数字 easy Java
LCP 2.化简分式 easy Java
LCP 3.机器人大冒险 medium Java
1.两数之和 easy Java
2.两数之和 medium Java
3.无重复字符的最长子串 medium Java
15.三数之和 medium Java
18.四数之和 medium Java
30.串联所有单词的子串 hard Java
33. 搜索旋转排序数组 medium Java
37.解数独 medium Java
39.组合总和 medium Java
40.组合总和II medium Java
46.全排列 medium Java
47.全排列II medium Java
51.N皇后 hard Java
62.不同路径 medium Java
63.不同路径II medium Java
64.最小路径和 medium Java
72.编辑距离 hard Java Python
76.最小覆盖子串 hard Java
77.组合 medium Java
78.子集 medium Java
81.搜索旋转数组II medium Java
90.子集II medium Java
94.二叉树的中序遍历 medium Java Python
95.不同的二叉搜索树II medium Java
100.相同的树 easy Java
101.对称二叉树 easy Java
102.二叉树的层次遍历 medium Java
103.二叉树的锯齿形遍历 medium Java
107.二叉树的层次遍历II easy Java
108.将有序数组转换为二叉搜索树 easy Java
110.平衡二叉树 easy Java
112.路径总和 easy Java
113.路径总和II medium Java
119.杨辉三角II easy Java
120.三角形最小路径和 medium Java
122.买卖股票的最佳时机II easy Java
124.二叉树中的最大路径和 hard Java
130.被围绕的区域 medium Java Python
131.分割回文串 medium Java
132.分割回文串II hard Java
139.单词拆分 medium Java
141.环形链表 easy Java
153.寻找排序数组中的最小值 easy Java
155.最小栈 easy Java
165.比较版本号 medium Java
160.相交链表 easy Java
179.最大数 medium Java
198.打家劫舍 easy Java
200.岛屿数量 medium Java
203.移除链表元素 easy Java
206.反转链表 easy Java
207.课程表 medium Java
209.长度最小的子数组 medium Java
210.课程表II medium Java
213.打家劫舍II medium Java
216.组合总和III medium Java
221.最大正方形 medium Java
225.用队列实现栈 easy Java
232.用栈实现队列 easy Java
234.回文链表 easy Java
240.搜索二维矩阵II medium Java
241.为运算表达式设计优先级 medium Java
300.最长上升子序列 medium Java
304.二维区域和检索-矩阵不可变 medium Java
309.最佳买卖股票时机含冷冻期 medium Java
322.零钱兑换 medium Java
337.打家劫舍III medium Java
357.计算各个位数不同的数字个数 medium Java
391.完美矩形 hard Java
401.二进制手表 easy Java
402.移掉K位数字 medium Java
413.等差数列划分 medium Java
416.分割等和子集 medium Java
417.太平洋大西洋水流问题 medium Java
473.火柴拼正方形 medium Java
525.连续数组 medium Java
542.01矩阵 medium Java
560.和为k的子数组 medium Java
567.字符串的排列 medium Java
594.最长和谐子序列 easy Java
691.贴纸拼词 hard Java
695.岛屿的最大面积 medium Java
763.划分字母区间 medium Java
785.判断二分图 medium Java
842.将数组拆分成斐波那契数列 medium Java
931.下降路径最小和 medium Java
934.最短的桥 medium Java
996.正方形数组的数目 hard Java
1004.最大连续1的个数III medium Java
1029.删除字符串中所有相邻重复项II medium Java
1039.多边形三角剖分的最低分 medium Java
1043.分割数组以得到最大和 medium Java
1046.最后一块石头的重量 easy Java
1072.按列翻转得到最大行数 medium Java
1079.活字印刷 medium Java
1081.不同字符的最小序列 medium Java
1143.最长公共子序列 medium Java
1171.从链表中删去总和值为零的连续结点 medium Java
1189.气球的最大数量 easy Java
1190.反转每对括号间的子串 medium Java Python
1208. 尽可能使字符串相等 medium Java
1213. 三个有序数组的交集 easy Java
1214. 查找两棵二叉搜索树之和 medium Java
1217. 玩筹码 easy Java
1218. 最长定差子序列 medium Java
1219. 黄金矿工 medium Java
1221.分割平衡字符串 easy Java
1226.哲学家进餐 medium Java
1234. 替换子串得到平衡字符串 medium Java
1239. 串联字符串的最大长度 medium Java
1247.交换字符使得字符串相等 easy Java
1253.重构2行二进制序列 medium Java
1254.统计封闭岛屿的数目 medium Java
1262.可被三整除的最大和 medium Java
1267.统计参与通信的服务器 medium Java
1269.停在原地的方案数 hard Java
1281.使结果不超过阈值的最小除数 medium Java
1286. 字母组合迭代器 medium Java
1288.有序数组中出现次数超过25%的元素 easy Java

About

Leetcode解题


Languages

Language:Java 100.0%