当前位置 博文首页 > LJ的博客:石器时代 —— Leetcode刷题日记 (二 算法思维)

    LJ的博客:石器时代 —— Leetcode刷题日记 (二 算法思维)

    作者:[db:作者] 时间:2021-09-03 15:14

    算法是寻找思维定式的思维

    前篇 - 数据结构

    文章目录

    • 2 `算法思维`
    • 数学技巧
      • 脑筋急转弯 - 简单的几个博奕类问题
      • 204 素数(质数)筛选
      • 372 高效的模幂运算
      • 洗牌算法(随机乱置算法)
      • 常见位运算
        • PS: 268 寻找缺失元素
          • `W1 排序比较`
          • `W2 哈希表`
          • `W3 位运算`
          • `W4 等差数列`
        • PS: 645 同时找到缺少或重复的元素
          • `W1 哈希表`
          • `W2 映射`
      • 反直觉的概率问题
        • 男孩女孩问题
        • 生日悖论
        • 三门问题
      • 累积数组(前缀和)
        • L560 和为K的子数组
      • 无限序列中随机抽取元素
        • 382 链表随机节点
        • 398 随机数索引
        • 加权随机抽样问题要怎么解决呢?
    • 排序
    • 分治
    • `动态规划`
      • 322 凑零钱
      • 300. 最长上升子序列
        • `W1 动态规划`
        • `W2 二分查找`
      • 354 信封嵌套问题
      • 673 最长递增子序列的个数
      • 1143 最大公共子序列数
        • `W1 递归+记忆数组`
        • `W2 动态规划`
      • 5. 最长回文子串
      • 516. 最长回文子序列
      • 72 编辑距离
      • 博弈问题
      • 高楼扔鸡蛋
      • 背包问题
        • 01背包问题
        • 完全背包问题
        • 有限背包问题
      • 正则表达式问题
        • `W1 暴力递归`
        • `W2 递归+备忘录`
        • `W3 DP数组`
      • 四键键盘 (会员题)
      • 字符串匹配KMP算法
        • `W1 暴力匹配`
        • `W2 KMP算法`
      • 546. 移除盒子
        • 三维动态规划
          • 递归法
          • 动态规划
      • 股票买卖问题集合
        • 121 只能买卖一次: k = 1, dp[i-1][0][0] = 0
        • 122 不限买卖次数: k=k-1, dp[i-1][k-1][0]=dp[i-1][k][0]
        • 123 限制买卖2次: k=2
        • 188 限制买卖k次
        • 309 不限买卖次数 含有**冷冻期**(卖后一天不能买)
        • 714 不限买卖次数 交易需要**手续费**
      • 打家劫舍集合
        • 198 一维数组 不能抢劫相邻房子
        • 213 198+头尾相连
        • 337 二叉树 不能相邻
      • 数位DP
      • 贪心算法思想
        • 不相交区间
        • 452. 用最少数量的箭引爆气球
        • 跳跃问题
          • 55 跳跃问题I
            • `W1 动规`
            • `W2 贪婪`
          • 45 跳跃游戏II
    • `递归`
      • 汉诺塔问题
      • 969 烧饼排序
      • Floodfill算法
        • L733 图像填充
        • 1034 边框着色
        • 695 岛屿最大面积
        • 200 岛屿个数
        • 529 扫雷游戏
    • `回溯`
      • 括号问题
      • 子集问题
        • L 78 不重复集合的所有子集
          • `W1 递归数学归纳法`
          • `W2 回溯`
        • L 90 含重复集合的所有子集
          • w1 递归数学归纳
          • w2 回溯
        • L698 判断能否将集合划分为k个相等子集
      • 组合问题
        • L 77 组合
        • L 39 组合总和
      • 全排列问题
        • 46 不重复序列
          • `W1 交换`
          • `W2 枚举创建法`
        • 47 重复序列
      • N皇后问题
      • 37 数独问题 <= O(9^M)
    • 分支定界
    • 双指针技巧
      • 快慢指针
        • 环检测
        • 26 删除重复元素
      • 左右指针
        • TwoSum系列
        • 2 反转数组
        • L43 字符串乘法
        • 5 最长回文子串
        • `二分查找框架`
          • 34 在排序数组中查找元素的第一个和最后一个位置
          • 二分查找使用实例
            • 875 KOKO吃香蕉
            • 1011. 在 D 天内送达包裹的能力
          • L392. 判断子序列
            • `W1 穷举`
            • `W2 哈希表+二分查找`
        • 3 `滑动窗口技巧`
          • 最小覆盖字串
          • 字符串排列 567
          • 438. 找到字符串中所有字母异位词
          • 3 无重复字符的最长子串
          • 1004 最大连续1的个数 III
        • L42 接雨水问题
          • 遍历法
          • 双指针
          • 单调栈
    • 宽度优先搜索 BFS
      • 111. 二叉树的最小深度
      • 752. 打开转盘锁
      • 技巧:双向BFS
    • 状态图解法
      • KMP字符匹配算法
      • 表示数值的字符串
    cs