mochi 🍭

402. 移掉 K 位数字

题目 原题 402. 移掉 K 位数字 解题 思考一下该使用什么样的策略去移除数字会让最终的数字尽可能的小:保证高位数字一定要尽可能的小,那么最终得到的数字就是最小的数字。本质上我们可以维护一个单调栈去实现这个策略。 注意事项 单调栈在维护的过程中,可能过早的消耗完 k 个可以被删除的字符,也可能没有完全消耗掉 k 个字符 针对 k 没有被全部消耗的情况,我们从后...

1074.元素和为目标值的子矩阵数量

题目 原题 1074.元素和为目标值的子矩阵数量 解题 这个题目直接使用暴力方法竟然能 AC… 暴力思路是:先计算出二维数组的前缀和并存储下来,然后使用 O(n^4) 枚举所有可能出现的子矩阵位置(枚举左上角的坐标和右下角的坐标即可),然后通过存储的前缀和去计算出每个子矩阵的 sum,判断是否符合 target。 现在需要探讨的是使用 HashMap 去优化这个 O(n^4...

红黑树插入流程详解

红黑树平衡性原则 根结点是黑色(有的版本对根结点的颜色没有强制要求) 所有节点只能是红色或者黑色 所有的叶子节点都是黑色,这里说的叶子结点是 NULL 叶子结点 如果一个节点是红色的,那么它的两个孩子只能是黑色的(即不能同时出现两个连续的红色节点) 从任意的一个节点出发,到它的所有叶子节点路径上都包含相同数量的黑色节点 另外,看似使用全部黑色的节点也符合红黑树的规...