0. 概要

leecode每日一题(也可能多题)题解跟踪记录及总目录。

常用算法解题思路和技巧及数据结构:

  1. 预处理:数组排序(954),哈希表。。。
  2. 双指针法 682,125,905
  3. 单向链表 2
  4. 双向链表
  5. 栈 388,591
  6. 哈希方法:凡是涉及大量查询处理的问题都可以考虑哈希方法,在python中可以用dict和set,查询效率比list查询高几个数量级
  7. 动态规划 64
  8. 深度优先搜索 733, 695,797,1306,365,886,785
  9. 广度优先搜索, 429, 733, 200, 695,1129,1306,1654,433,752
  10. 多源广度优先搜索 1162,847
  11. 双向广度优先搜索 127
  12. 递归,427
  13. 滑动窗,28,661
  14. 迭代 2104,7, 396
  15. padding以简化边界处理,1144
  16. 有限状态机 8,122
  17. 数学 2028, 365
  18. 模拟 1606
  19. 有序数组 1606
  20. 优先队列 1606
  21. 线段树 307
  22. 二分法 744
  23. 拓扑排序 310, 802
  24. 树 145, 590, 589, 429, 1305,1022,450
  25. 并查集 547
  26. 状态压缩 847
  27. 字典树 386,440
  28. 二分图 886,785
  29. 凸包 587
  30. 水池抽样 398
  31. 数据结构: 380

1. 学习计划广场

1.1 图论基础

733,200,695,1254,1020,1905,1162,417,1091,542,934,1926, 797,841,547,1319,1376,802,1129,847,1306,1654,365,433,752,127,997,1557,1615,886,785

1.2 动态规划入门

Leetcode学习计划之动态规划入门day1,2(共4题,509,1137,70,746)

Leetcode学习计划之动态规划入门day3(198,213,740)

Leetcode学习计划之动态规划入门day4(55,45)

Leetcode学习计划之动态规划入门day5(53,918)

Leetcode学习计划之动态规划入门day6(152, 1567)

Leetcode学习计划之动态规划入门day7(1014,121,122)

Leetcode学习计划之动态规划入门day8(309,714)

Leetcode学习计划之动态规划入门day9(139,42)

Leetcode学习计划之动态规划入门day10(413,91)

Leetcode学习计划之动态规划入门day11(264,96)

Leetcode学习计划之动态规划入门day12(118,119)

Leetcode学习计划之动态规划入门day13(931,120)

Leetcode学习计划之动态规划入门day14(1314,120)

Leetcode学习计划之动态规划入门day15(62,63)

Leetcode学习计划之动态规划入门day16(64,221)

Leetcode学习计划之动态规划入门day17(5,516)

Leetcode学习计划之动态规划入门day18(300,376)

Leetcode学习计划之动态规划入门day19(392,1143,72)

Leetcode学习计划之动态规划入门day20(322,518)

Leetcode学习计划之动态规划入门day21(377,343,279)

1.3 概率题面试突击系列

Leetcode概率题面试突击系列1~5

Leetcode概率题面试突击系列6~10

Leetcode 面试题 01.05. 一次编辑(medium)

Leetcode 面试题 04.06. 后继者(medium)

Leetcode 面试题 17.11. 单词距离(medium)

剑指 Offer II 114. 外星文字典(difficult)

Leetcode顺序目录:

Leetcode0001: 两数之和(simple, 4种解法)

Leetcode0002. 两数相加(medium)

Leetcode0003: 无重复字符的最长子串(medium)

Leetcode0005. 最长回文子串(medium, 枚举遍历,动态规划)

Leetcode0006: Z字形变换(medium, 置换处理)

Leetcode0007. 整数反转(medium,迭代)

Leetcode0008. 字符串转换整数 (atoi)(medium, 有限状态机)

Leetcode0009. 回文数(simple)

Leetcode0027: 移除元素(simple, 双指针法)

Leetcode0028: 实现 strStr()(simple, sliding window)

Leetcode0064. 最小路径和(medium,动态规划)

Leetcode0070:参见上面动态规划入门

Leetcode0119. 杨辉三角 II(simple)

Leetcode0125. 验证回文串(simple,两种解法)

Leetcode0127. 单词接龙(difficult,双向BFS)

Leetcode0135. 分发糖果(difficult)

Leetcode0136: 只出现一次的数字(simple)

Leetcode0137:只出现一次的数字 II (medium)

Leetcode0145: 二叉树的后序遍历(simple,递归,迭代)

Leetcode0172. 阶乘后的零(medium,四种解法)

Leetcode0200. 岛屿数量(medium, 广度优先)

Leetcode0213: 打家劫舍 II(medium, 动态规划)

Leetcode0239. 滑动窗口最大值(difficult, 滑动窗,优先队列)

Leetcode0258: 各位相加(simple, recursion)

Leetcode0279: 完全平方数(medium, BFS)

Leetcode0307. 区域和检索 - 数组可修改(medium, 线段树)

Leetcode0310. 最小高度树(medium,拓扑排序)

Leetcode0322: 零钱兑换(medium, BFS)

Leetcode0357. 统计各位数字都不同的数字个数(medium)

Leetcode0365. 水壶问题(medium,数学方法,DFS)

Leetcode0380. O(1) 时间插入、删除和获取随机元素(medium)

Leetcode0385. 迷你语法分析器(medium)

Leetcode0386. 字典序排数(medium,字典树)

Leetcode0388. 文件的最长绝对路径(medium, 栈, DFS)

Leetcode0393: UTF-8 编码验证(medium, 动态规划)

Leetcode0396. 旋转函数(medium,迭代)

Leetcode0398. 随机数索引(medium,哈希表,蓄水池抽样)

Leetcode0417. 太平洋大西洋水流问题(medium)

Leetcode0420. 强密码检验器(difficult)

Leetcode0427. 建立四叉树(medium,递归)

Leetcode0429. N 叉树的层序遍历(medium, BFS)

Leetcode0432. 全 O(1) 的数据结构(difficult)

Leetcode0433. 最小基因变化(medium,BFS)

Leetcode0436. 寻找右区间(medium)

Leetcode0440. 字典序的第K小数字(difficult, 字典树)

Leetcode0442. 数组中重复的数据(medium)

Leetcode0449. 序列化和反序列化二叉搜索树(medium)

Leetcode0450. 删除二叉搜索树中的节点(medium)

Leetcode0462. 最少移动次数使数组元素相等 II(medium)

Leetcode0467. 环绕字符串中唯一的子字符串(medium)

Leetcode0468. 验证IP地址(medium)

Leetcode0479. 最大回文数乘积(difficult)

Leetcode0504: 七进制数(simple)

Leetcode0509:参见上面动态规划入门

Leetcode0521: 最长特殊序列 Ⅰ(simple, 字符串处理)

Leetcode0540: 有序数组中的单一元素(medium)

Leetcode0542. 01 矩阵(medium,BFS)

Leetcode0547. 省份数量(medium,DFS,BFS,并查集)

Leetcode0553: 最优除法(medium,动态规划)

Leetcode0564: 寻找最近的回文数(difficult^2)

Leetcode0587. 安装栅栏(difficult,凸包)

Leetcode0589: N 叉树的前序遍历(simple, 递归)

Leetcode0590: N 叉树的后序遍历(simple, 递归,迭代)

Leetcode0591. 标签验证器(difficult)

Leetcode0599: 两个列表的最小索引总和(simple)

Leetcode0606. 根据二叉树创建字符串(simple)

Leetcode0653. 两数之和 IV - 输入 BST(simple, 树的遍历,哈希方法)

Leetcode0661. 图片平滑器(simple,滑动窗)

Leetcode0668. 乘法表中第k小的数(difficult)

Leetcode0682. 棒球比赛(simple, 双指针法)

Leetcode0688: 骑士在棋盘上的概率(medium)

Leetcode0688: 骑士在棋盘上的概率(medium, 基于概率转移矩阵的解法)

Leetcode0690: 员工的重要性(medium,树的遍历)

Leetcode0691. 贴纸拼词(difficult)

Leetcode0693. 交替位二进制数(simple)

Leetcode0695. 岛屿的最大面积(medium, BFS, DFS)

Leetcode0699. 掉落的方块(difficult)

Leetcode0713. 乘积小于 K 的子数组(medium)

Leetcode0717: 1比特与2比特字符(simple, 动态规划)

Leetcode0720. 词典中最长的单词(simple)

Leetcode0728. 自除数(simple)

Leetcode0733. 图像渲染(simple,BFS)

Leetcode0744. 寻找比目标字母大的最小字母(simple, 二分法)

Leetcode0746:参见上面动态规划入门

Leetcode0752. 打开转盘锁(medium,BFS)

Leetcode0762. 二进制表示中质数个计算置位(simple)

Leetcode0780. 到达终点(difficult,辗转相除法)

Leetcode0785. 判断二分图(medium,二分图,DFS)

Leetcode0796. 旋转字符串(simple)

Leetcode0797. 所有可能的路径(medium, DFS)

Leetcode0798: 得分最高的最小轮调(difficult)

Leetcode0802. 找到最终的安全状态(medium,DFS,拓扑排序)

Leetcode0804. 唯一摩尔斯密码词(simple)

Leetcode0806. 写字符串需要的行数(simple)

Leetcode0812. 最大三角形面积(simple)

Leetcode0819. 最常见的单词(simple)

Leetcode0821. 字符的最短距离(simple)

Leetcode0824. 山羊拉丁文(simple,字符串处理)

Leetcode0829. 连续整数求和(difficult)

Leetcode0838: 推多米诺(medium)

Leetcode0841. 钥匙和房间(medium,DFS,BFS)

Leetcode0847. 访问所有节点的最短路径(difficult,BFS,状态压缩)

Leetcode0863: 二叉树中所有距离为 K 的结点(medium, BFS, DFS)

Leetcode0865. 具有所有最深节点的最小子树(medium)

Leetcode0868. 二进制间距(simple)

Leetcode0886. 可能的二分法(medium,二分图)

Leetcode0905. 按奇偶排序数组(simple,双指针法)

Leetcode0908. 最小差值 I(simple)

Leetcode0910. 最小差值 II(medium)

Leetcode0917: 仅仅反转字母(simple)

Leetcode0933. 最近的请求次数(simple)

Leetcode0934. 最短的桥(medium,BFS)

Leetcode0942. 增减字符串匹配(simple)

Leetcode0944. 删列造序(simple)

Leetcode0953. 验证外星语词典(simple)

Leetcode0954. 二倍数对数组(medium)

Leetcode0961. 在长度 2N 的数组中找出重复 N 次的元素(simple)

Leetcode0965. 单值二叉树(simple)

Leetcode0969: 煎饼排序(medium, BFS)

Leetcode0969: 煎饼排序(medium, DFS)

Leetcode0969: 煎饼排序(medium, 动态规划)

Leetcode0997. 找到小镇的法官(simple)

Leetcode1021. 删除最外层的括号(simple)

Leetcode1022. 从根到叶的二进制数之和(simple)

Leetcode1091. 二进制矩阵中的最短路径(medium,BFS)

Leetcode1137:参见上面动态规划入门

Leetcode1144. 递减元素使数组呈锯齿状(medium)

Leetcode1162. 地图分析(medium,BFS)

Leetcode1189: “气球”最大数量(simple)

Leetcode1020. 飞地的数量(medium)

Leetcode1129. 颜色交替的最短路径(medium,BFS)

Leetcode1254. 统计封闭岛屿的数目(medium)

Leetcode1305. 两棵二叉搜索树中的所有元素(medium)

Leetcode1306. 跳跃游戏 III(medium,BFS,DFS)

Leetcode1319. 连通网络的操作次数(medium,BFS,DFS)

Leetcode1376. 通知所有员工所需的时间(medium,DFS,DP)

Leetcode1380: 矩阵中的幸运数(simple)

Leetcode1466. 重新规划路线(medium,BFS)

Leetcode1557. 可以到达所有点的最少点数目(medium)

Leetcode1601: 最多可达成的换楼请求数目(difficult)

Leetcode1606. 找到处理最多请求的服务器(difficult,优先队列,有序数组)

Leetcode1615. 最大网络秩(medium,图论基础)

Leetcode1640. 能否连接形成数组(simple)

Leetcode1654. 到家的最少跳跃次数(medium,BFS)

Leetcode1672. 最富有客户的资产总量(simple)

Leetcode1706: 球会落何处(medium)

Leetcode1728. 猫和老鼠 II(difficult)

Leetcode1791: 找出星型图的中心节点(simple)

Leetcode1905. 统计子岛屿(medium)

Leetcode1926. 迷宫中离入口最近的出口(medium,BFS)

Leetcode1994: 好子集的数目(difficult)

Leetcode2016: 增量元素之间的最大差值(simple, dp)

Leetcode2022. 将一维数组转变成二维数组(simple)

Leetcode2024. 考试的最大困扰度(medium)(滑动窗,双指针)

Leetcode2028. 找出缺失的观测数据(medium,数学)

Leetcode2038. 如果相邻两个颜色均相同则删除当前颜色(medium, dp, greedy)

Leetcode2039. 网络空闲的时刻(medium, BFS)

Leetcode2043. 简易银行系统(medium)

Leetcode2044. 统计按位或能得到最大值的子集数目(medium)

Leetcode2049: 统计最高分的节点数目(medium, DFS)

Leetcode2055: 蜡烛之间的盘子(medium)

Leetcode2086. 从房屋收集雨水需要的最少水桶数(medium)

Leetcode2100: 适合打劫银行的日子(medium, 滑动窗,动态规划)

Leetcode2104: 子数组范围和(medium, iteration)

Leetcode2207. 字符串中最多数目的子字符串(medium)

2022-02-21:立下一个flag。努力保持每日一题打卡。不过我知道这个很难(毕竟还要努力工作糊口^-^),比如说碰上一道困难级别的问题大抵就要放鸽子了(前几天的Leetcode1719就还一直没有补上)^-^. 先定一个小目标:努力争取2022年年度打卡率80%

当然,随时记录一些解题总结心得,也是必须有的题中之义。

2022-02-21:Leetcode969。终于给出一个能通过leetcode的基于动态规划解法。DFS、BFS和动态规划都是解决算法问题的通用框架。但是各有各的特长各有各自的最擅长的战场。如何在第一时间找到最适合的解法呢?估计这个只能凭借“无它,唯手熟尔”?

2022-02-23: Leetcode322: 一个巨大的教训是,visited用set()与用list有巨大的速度之差。一开始用list实现visited。。。超出时间限制。后来参考评论区的改用set,同一个超时的case在本机上执行的用时为1.77s vs 0.016s,竟然有100倍之巨!!!

Lists are slightly faster than sets when you just want to iterate over the values.
        Sets, however, are significantly faster than lists if you want to check if an item is contained within it. They can only contain unique items though. It turns out tuples perform in almost exactly the same way as lists, except for their immutability.

2022-02-27: Leetcode553. 被去除冗余括号的处理要了老命了。。。感觉这个字符串处理比算法本身还要难(或者说只是麻烦吧),或许只是我没有找对路^-^。同样都是medium,Leetcode137跟Leetcode553的难度感觉也差了一个量级。。。不过做完Leetcode136后,发现Leetcode137当前解法不能满足线性时间复杂度的要求,要重新考虑。

2022-03-01: 有时候看看Leetcode官方题解和别人的别出心裁的题解,每每惊叹于其中代码的紧凑简洁。不过,这个不能完全模仿。过于简洁会伤害代码的可读性,在一边提高代码技巧的同时还是要坚持写自己能看懂的代码。坚持自己的叙述方式最重要。

Leetcode0007之前好像发布过,不过今天不知道什么误操作貌似把这篇给删除了^-^(CSDN的编辑器还是不够好用,经常被坑)。只好重做一次,不过可以确信的是,这次的解法跟之前的是不一样的。

2022-03-31:完成一个月的刷题打卡,纪念一下。

2022-04-14 今天这篇博客遭遇了审查未通过的命运,原因是”违法违规“。每天把当天解的leetcod每日一题的博客的链接加到这篇文中而已,只是为了方便感兴趣的小伙伴能够按顺序查找而已。之前已经提交过100次,今天又加了一篇,然后就违法违规了。。。CSDN的审查算法难道是量子(不确定性)算法吗?被封禁在家快满一个月,不知何时休?国家有难必有妖孽出没,这CDSN的审查算法也是妖孽操纵了吗?

几天前开始除了leetocode每日一题外,启动了”图论基础”专题训练,为期14天,总共28道题。今天是第5天还是第6天,感觉这样集中地针对某一个主题的特训也很有效果,现在那着一道普通的图搜索问题,几乎可以直接咔嚓咔嚓几下就把代码写了,套路感满满。。。

好,追加完以上日志,重新提交,看看这次能不能过。

刚刚把上面几段可能涉及当前情况下的敏感词汇截成图片后贴上去结果就审查通过了。感到非常悲哀。难道又要回到中世纪了吗?

2022-04-17

满月了。真是一个魔幻的世界。不知道如何找到台阶下。真心希望这一切代价不是为愚蠢刚愎而付,希望这一切牺牲有配得上的理由。

2022-04-21 完成了“图论基础”学习计划,下一个专题整点啥呢?

2022-04-22 开始“动态规划入门”学习计划。从图论基础学习计划来看,这种针对一个专题集中攻克还是比较有效的学习方法

2022-04-27

今天的每日一题是leetcode417.

本题在之前图论基础学习计划中做过,但是每日一题要求也必须重新提交了一下。于是没有做任何代码重新提交了一下,结果如下:

执行用时:84 ms, 在所有 Python3 提交中击败了81.17%的用户

内存消耗:16.1 MB, 在所有 Python3 提交中击败了93.83%的用户

上次提交的性能数据是:

执行用时:72 ms, 在所有 Python3 提交中击败了94.03%的用户

内存消耗:16.3 MB, 在所有 Python3 提交中击败了71.30%的用户

这个排名数据的变化情况令我很惊讶。两项相对数据发生变化可以理解,执行用时嘛,跟服务器的当前负荷有关发生变化也可以理解?关键是“内存消耗”这一个数据,这个数据是一个绝对的量,代码没有变化,按道理来说应该是没有变化的。很好奇力扣的结果评估机制是什么。

2022-04-30

封闭隔离进入第8周。。。你问我何时能解禁?不是在此时,不知在何时,我想大约会是在冬季。。。

2022-05-12:今天完成了“动态规划入门”学习计划(21天共近50多道题目)。虽然只是入门级,但是已经有好些问题都是考虑直接学习官解或其他人的解法才蒙混过关。后面还有“基础”、“进阶”、“大师”等级别,前路漫漫,学无止境。。。先休整总结一下,再考虑下一级别攻关。

2022-05-30:

Leetcode每日一题总目录(动态更新。。。)相关推荐

  1. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  2. LeetCode每日一题——1235. 规划兼职工作

    LeetCode每日一题系列 题目:1235. 规划兼职工作 难度:困难 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你打算利用空闲时间来做兼职工作赚些零花钱. 这里有 n ...

  3. Leetcode每日一题——思路小记

    文章目录 LeetCode每日一题 golang T15 2020.6.12 三数之和,双指针的运用 T70 2020.6.13 斐波那契数列 T1014 2020.6.17 最佳观光:双指针,计算公 ...

  4. LeetCode每日一题——1687. 从仓库到码头运输箱子

    LeetCode每日一题系列 题目:1687. 从仓库到码头运输箱子 难度:困难 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你有一辆货运卡车,你需要用这一辆车把一些箱子从仓 ...

  5. leetcode贪心算法题集锦(持续更新中)

    leetcode贪心算法题集锦 leetcode贪心算法题集锦(持续更新中).python 和C++编写. 文章目录 leetcode贪心算法题集锦 一.贪心算法 1.盛最多水的容器 2.买股票的最佳 ...

  6. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

  7. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  8. LeetCode每日一题——904. 水果成篮

    LeetCode每日一题系列 题目:904. 水果成篮 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整 ...

  9. LeetCode每日一题打卡组队监督!刷题群!

    近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...

最新文章

  1. aspnetcore mvc 异常处理_深入探究ASP.NET Core异常处理中间件
  2. oracle之二控制文件
  3. C++编程语言之Lambda函数与表达式
  4. Oracle 日志的核心意义(快速提交,写缓存,回滚)
  5. mpi tcp连接报错_MPI分布式编程 --3.OpenMPI多节点运行报错
  6. Poj 3246 Balanced Lineup(线段树基础)
  7. [转]为elipse设置javadoc
  8. erp管理系统都有哪些
  9. 第四十七节,random 随机数模块
  10. python软件下载百度云-python电子书学习资料打包分享百度云资源下载
  11. 在树莓派上搭建gitea
  12. nagios介绍及Server安装(三)
  13. 实景三维数据也可以免费下载
  14. 使用PHP官方镜像调用API进行文本翻译
  15. ImDisk 命令行用法
  16. CFAR原理详解及其matlab代码实现
  17. errorcode 微信分享_分享错误码
  18. Mirror for Samsung TV for mac(三星智能电视投屏软件)
  19. VSCODE 简单配置用户代码片段
  20. 广州“粤A000F1”车牌拍出74万天价(图)

热门文章

  1. 微信小程序开发工具介绍及安装(中)
  2. WebView交互架构项目实战(二),张孝祥java基础视频教程
  3. 索尼发布PSVR2,内置触觉振动马达
  4. 利用魔法数实现快速开平方
  5. 【MNIST数据转化】.idx3-ubyte 转png 格式
  6. 如何制作商务礼仪PPT模板?
  7. 常用webshell提权方法
  8. [矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式
  9. python使用requests库获取网页的内容
  10. 2022东南大学916专业课超详细复习经验贴