TODO 函数返回透明类型 -> impl xxTrait
当一个函数声明返回 impl Trait 时,它意味着函数将返回一个实现了 Trait 的某个具体类型,而这个具体类型对于用户是透明的。Rust 使用 impl Trait 来允许函数返回一个具体类型,但又不暴露这个类型的细节。
当一个函数声明返回 impl Trait 时,它意味着函数将返回一个实现了 Trait 的某个具体类型,而这个具体类型对于用户是透明的。Rust 使用 impl Trait 来允许函数返回一个具体类型,但又不暴露这个类型的细节。
题目 原题 316. 去除重复字母 解题 题目中告知需要维持字典序并去除重复的字母,能够想到需要使用单调栈的思路,下面以 1 个具体例子分析问题: 给定字符串 s="cbacdcbc": 'c' 直接入栈,当前栈中字符串为 "c" 'b' 等待入栈,发现栈顶字符为 'c','c' > 'b' 并且 'b' 后面的这些字符中仍旧存在多个 'c' 字符,我们可以...
题目 原题 402. 移掉 K 位数字 解题 思考一下该使用什么样的策略去移除数字会让最终的数字尽可能的小:保证高位数字一定要尽可能的小,那么最终得到的数字就是最小的数字。本质上我们可以维护一个单调栈去实现这个策略。 注意事项 单调栈在维护的过程中,可能过早的消耗完 k 个可以被删除的字符,也可能没有完全消耗掉 k 个字符 针对 k 没有被全部消耗的情况,我们从后...
题目 原题 3175. 找到连续赢 K 场比赛的第一位玩家 解题 直接按照题目使用模拟的思路,会导致超时;对 k>skills.length() 的情况直接返回具有 maxSkill 的 index 能够解决这个模拟方法的超时问题。 下面分析一下题目中隐含的一些思路 如果 1 个 player 后面的 t 个 players 的 skill 值都比他低,那么这个...
全文索引? 全文索引可以加速文本搜索过程 TODOs ClickHouse 集成 TantivySearch 工作概览 TantivySearch 项目结构 TantivySearch 不同搜索策略的实现(设计模式之策略模式) ClickHouse 集成 tantivy-search 库 ClickHouse 对 FTS 索引的管理逻辑 ClickHouse ...
题目 原题 525.连续数组 解题 1.未优化版本 滑动窗口思想 最先想到的是使用滑动窗口的方法,先使用 preOneCount[i] 计算 [0,i] 区间内 1 出现的次数,然后通过从大往小遍历滑动窗口 window 去检测窗口是否合法(即窗口所在的区间内部 1 和 0 的数量是否一致) 代码如下: class Solution { public int fi...
题目 原题 54.螺旋矩阵 解题 进行螺旋遍历🌀的本质实际上是找到每个需要遍历的边 遍历最上侧的边 top, 遍历完毕后将 top++。 遍历最右侧的边 right, 遍历完毕后将 right–。 遍历最底部的边 bottom, 遍历完毕后将 bottom–。 遍历最左侧的边 left, 遍历完毕后将 left++。 注意: 每次在遍历的时候都将...
题目 原题 1074.元素和为目标值的子矩阵数量 解题 这个题目直接使用暴力方法竟然能 AC… 暴力思路是:先计算出二维数组的前缀和并存储下来,然后使用 O(n^4) 枚举所有可能出现的子矩阵位置(枚举左上角的坐标和右下角的坐标即可),然后通过存储的前缀和去计算出每个子矩阵的 sum,判断是否符合 target。 现在需要探讨的是使用 HashMap 去优化这个 O(n^4...
题目 原题 477.汉明距离总和 题解 直接使用暴力方法计算 total hamming distance 会超时: class Solution { public int totalHammingDistance(int[] nums) { int res =0; for (int left =0; left< nums.len...
2024/11