LeetCode每日一题刷题总结
时间:2021-07-13
本文章向大家介绍LeetCode每日一题刷题总结,主要包括LeetCode每日一题刷题总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
知乎上看到有人在力扣上刷每日一题,并做了总结。受此启发,将自己已经刷过的算法做了汇总。
图:
- LCP 07. 传递信息(深度、广度、动态规划)
链表:
- 61:旋转链表,剑指offer22:链表中倒数第k个节点
- 82.删除链表中的重复元素II
- 83.删除排序链表中的重复元素
- 92.翻转链表II
- 206.翻转链表
- 203.移除链表元素
枚举:
哈希表:
- 1. 两数之和
- 65. 有效数字
- 149. 直线上最多的点数
- 217. 存在重复元素
- 218. 天际线问题(扫描线法)
- 350. 两个数组的交集 II
- 451. 根据字符出现频率排序
- 554. 砖墙(哈希表)
- 645. 错误的集合
- 1418. 点菜展示表
- 1711. 大餐计数
- 面试题 17.10. 主要元素
动态规划:
- 198、213、337:打家劫舍 I;II;III。 经典
- 50.裴波那契数
- 62.不同路径
- 70.爬楼梯
- 81.丑数II
- 87.扰乱字符串
- 121.买卖股票的最佳时机
- 131.分割回文串
- 132.分割回文穿II
- 221.最大正方形
- 225.不同的子序列
- 279. 完全平方数
- 338.比特位计数
- 377. 组合总和 Ⅳ(动态规划)
- 518. 零钱兑换 II
- 664. 奇怪的打印机
- 740. 删除并获得点数-类似打家劫舍
- 877. 石子游戏
- 978.最长湍流子数组
- 1035. 不相交的线(二维动态规划)
- 1143.最长公共子序列
- 1269. 停在原地的方案数
- 1449. 数位成本和为目标值的最大数字
- 1473. 粉刷房子 III(三维动态规划)
- 1787. 使所有区间的异或结果为零(动态规划)
区间动态规划:
- 87.扰乱字符串
- 5.最长回文串
- 616.最长回文子序列
- 312.戳气球
- 1246.删除回文子数组(important)
二分查找:
- 29.两数相除
- 35.搜索插入位置
- 74.搜索二维矩阵
- 81.搜索旋转排序数组II,
- 162.寻找峰值
- 274. H 指数
- 275. H 指数 II
- 278. 第一个错误的版本
- 354.俄罗斯套娃信封问题
- 374. 猜数字大小
- 410.分割数组的最大值
- 704.二分查找
- 852. 山脉数组的峰顶索引
- 875.爱吃香蕉的珂珂
- 1011.在D天内送达包裹的能力
- 1231.分享巧克力
- 1482.制作m束花所需的最少天数
- 1723. 完成所有工作的最短时间
数组:
- 27.移除元素
- 36. 有效的数独
- 73. 矩阵置零
- 88. 合并两个有序数组
- 118. 杨辉三角
- 283.移动零
- 485.最大连续 1 的个数
- 566. 重塑矩阵
- 692. 前K个高频单词(哈希表 + 排序)
队列:
- 933.最近的请求次数
- 22.用队列实现栈
- 622.设计循环队列
- 641.设计循环双端队列
栈
- 20.有效的括号
- 496.下一个更大的元素
- 150.逆波兰表达式求值
- 232.用栈实现队列
- 217.存在重复元素
- 224.基本计算器
- 227.基本计算器II
- 232.用栈实现队列
- 389.找不同
- 496.下一个更大的元素
- 503.下一个更大元素II
- 1047.删除字符串中的所有相邻重复项
- 1190. 反转每对括号间的子串(栈)
集合
- 217.存在重复元素
- 705.设计哈希集合
堆
- 215.数组中的第K个最大元素
- 692.前k个高频单词
滑动窗口、双指针
- 26.删除有序数组中的重复项
- 27.移除元素
- 80.删除有序数组中的重复项II
- 88. 合并两个有序数组
- 141. 环形链表
- 160. 相交链表
- 209.长度最小的子数组
- 220.存在重复元素III
- 344.反转字符串
- 424.替换后的最长重复字符
- 480.滑动窗口中位数
- 485.最大连续1的个数
- 567.字符串的排列
- 643.子数组的最大平均数I
- 930. 和相同的二元子数组
- 992.K个不同整数的子数组
- 995.K连续位的最小翻转次数
- 1004.最大连续1的个数III
- 1052.爱生气的书店老板
- 1208.尽可能使字符串相等
- 1423.可获得的最大点数
- 1438.绝对差不超过限制的最长连续子数组
- 1456.定长子串中元音的最大数目
递归
- 20.翻转链表
- 50.裴波那契数
- 34.反转字符串
- 68.最长同值路径
- 87.扰乱字符串
- 395.至少有K个重复字符的最长字符
分治算法
- 16.多数元素
- 53. 最大子序和
回溯
- 22.括号生成
- 39.组合总和(最经典)
- 78.子集
- 77.组合
- 46.全排列
- 40.牌
- 403.青蛙过河
- 剑指 Offer 38. 字符串的排列
DFS(深度优先遍历)
- 78.子集
- 200.岛屿数量
- 341.扁平化嵌套列表迭代器
- 690. 员工的重要性 (DFS 深度优先遍历)
- 938.二叉搜索树的范围和
BFS(广度优先遍历)
- 102.二叉树的层序遍历
- 107.二叉树的层序遍历II
- 200.岛屿数量
- 1203.项目管理
并查集
- 54.省份数量
- 72.账户合并
- 181.由斜杠划分区域
- 200.岛屿数量
- 778.水位上升的泳池中游泳
- 803.打砖块
- 839.相似字符串组
- 947.移除最多的同行或同列石头
- 1319.连通网络的操作次数
- 1579.保证图可完全遍历
- 1631.最小体力消耗路径
贪心算法
- 32.零钱兑换
- 781. 森林中的兔子(贪心)
- 1217.玩筹码
- 55.跳跃游戏
- 1833. 雪糕的最大数量
前缀树(Trie)
- 208.实现Trie
- 303.区域和检索-数组不可变
- 720.词典中最长的单词
- 363.矩形区域不超过K的最大数值和
- 1707. 与数组中元素的最大异或值
拓扑排序
- 207.课程表
- 102.课程表II
位运算
- 137. 只出现一次的数字 II
- 191.位1的个数
- 剑指 Offer 15. 二进制中1的个数
- 213.情侣牵手
- 231. 2 的幂
- 342. 4的幂
- 421. 数组中两个数的最大异或值(前缀树(Trie))
- 684.冗余连接
- 810. 黑板异或游戏(博弈论)
- 1310. 子数组异或查询 (位运算-前缀和)
- 1442. 形成两个异或相等数组的三元组数目(动态规划)
- 1486. 数组异或操作
- 1720. 解码异或后的数组
- 1734. 解码异或后的排列
数学、模拟过程:
- 7. 整数反转
- 12. 整数转罗马数字
- 13. 罗马数字转整数
- 54.螺旋矩阵
- 59.螺旋矩阵II
- 80.丑数
- 168. Excel表列名称
- 461. 汉明距离
- 477. 汉明距离总和
- 483. 最小好进制
- 556.重塑矩阵
- 561.数组拆分
- 628.三个数的最大乘积
- 832.翻转图像
- 867.转置矩阵
- 1018.可被5整除的二进制前缀
- 1232.缀点成线
二叉树
- 1603.设计停车系统
- 173.二叉搜索树迭代器
- 783.二叉搜索树节点最小距离
- 331.验证二叉树的前序序列化
- 993. 二叉树的堂兄弟节点
前缀和
- 53. 最大子序和
- 523. 连续的子数组和
- 525. 连续数组
- 1074. 元素和为目标值的子矩阵数量
- 1738. 找出第 K 大的异或坐标值(二维前缀和 + 排序)
- 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?(前缀和)
Morris算法
KMP算法
原文地址:https://www.cnblogs.com/yanjianjiang/p/14784106.html
- spring cloud 学习(10) - 利用springfox集成swagger
- Hadoop(六)之HDFS的存储原理(运行原理)
- Blockchain Global CEO Sam Lee:以大数据为基础,区块链技术加快决策生成速度
- Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
- 被解放的姜戈08 远走高飞
- mxnet安装及NDArray初体验
- MySQL(十五)之数据备份中mysqldump详解
- 安卓第十夜 亚当的诞生
- MySQL(十四)之数据备份与还原
- MySQL(十三)之MySQL事务
- 安卓第三夜 概念漫游(上)
- JavaWeb(七)之详解JavaWeb路径
- Hadoop(四)HDFS集群详解
- 安卓第八夜 玛丽莲梦露
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java基础知识点总结
- Ajax详解(拓展:利用Ajax实现用户名的校验)
- Maven学习笔记
- com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout 的解决
- 基于VSFTPD技术与KindEditor的简单案例
- Linux下安装JDK1.8、Tomcat、以及MySQL详细介绍(附软件分享)
- Nginx技术(附软件分享)
- (必考)关于JS中this关键字的说法,下面错误的是?
- OA项目总结(附程序源码)
- Redis技术(附软件分享)
- Redis项目案例
- 前端测试题:(解析)关于JS中this关键字的说法,下面错误的是?
- PostgreSQL 内存消耗从LINUX 系统层次看
- RBAC模型与权限系统的梳理(附案例源码)
- Maven项目中常用jar包的坐标以及用法(个人总结)