随笔分类 - 算法慢慢啃
学习过程-使用Java语言
摘要:# 一类字符串解析题目的思考 ## 相关题目 最近整理发现,某些机考场景比较喜欢对复杂字符串做解析,例如: 1. [394. 字符串解码](https://leetcode.cn/problems/decode-string/) 2. [1190. 反转每对括号间的子串](https://leetc
阅读全文
摘要:# 雪花算法单线程实现-scala > [参考blog](https://blog.csdn.net/qq_33404395/article/details/89476607) ```scala /** * [时间戳][数据标识id][机器id] */ object SnowFlake { // 开
阅读全文
摘要:# 二叉树的迭代遍历-栈 > 二叉树的递归遍历书写简单,做题时能够帮助快速完成dfs > > 但是往往有某些面试官或者题目要求,使用迭代法完成树的遍历 > > 作为复习材料,不导出推导过程,只给出核心记忆点 `TreeNode` ```java public class TreeNode { int
阅读全文
摘要:设计笔记 聚焦在编码设计数据结构、复现数据结构,对常见数据结构的要求熟练掌握,题目较少 💚 -- Easy 💛 -- Medium 🧡 -- Hard 题目顺序,codetop.cc 默认排序规则 两个缓存更新:LFU(频率 frequency)、LRF(最近recently) 💛146.
阅读全文
摘要:图笔记 图的遍历代码结构和回溯代码结构相似,因此在整理回溯题目之后整理了图相关的题目,这部分的题目考察较少,不建议花太多工夫,了解常用的算法即可,力扣周赛后两题极高概率考 Graph graph; boolean[] visited; /* 图遍历框架 */ void traverse(Graph
阅读全文
摘要:回溯笔记 包括本人学习数据结构期间的所有的回溯题目 回溯结构比较统一,建议抽时间集中突破 题目清单(简单题的意思是允许暴力搜索,往往有进阶解) 💚 -- Easy 💛 -- Medium 🧡 -- Hard 题目顺序,codetop.cc 默认排序规则(题目不多) 💛46. 全排列 💛93
阅读全文
摘要:List的两种子类LinkedList, ArrayList的选择 背景:LeetCode的一道回溯题目 78.子集 分析 题目意思是枚举所有的子集,必然想到回溯算法,本人使用回溯习惯使用一个成员变量链表和一个答案列表 配合回溯算法 List<List<Integer>> ans; List<Int
阅读全文
摘要:基本数据类型在转换时的注意点 以Java的两种常用数值类型为例long, int 常用的一种错误的防止溢出的写法是 int a = ???????, b = ????????; long c = a * b; 当a*b超出Integer的表达范围时,例如 a = Integer.MAX_VALUE,
阅读全文
摘要:子序列与子数组(子串) 区别 子序列 元素在原数组的下标不连续,相对位置不可改变 例如 [1,2,3,4,5] -> [1,3,5] 子数组(子串) 元素在原数组的下标连续,相对位置不可变 例如 [1,2,3,4,5] -> [1,2,3] 特别的,子数组(子串)是子序列的一种特殊形式(当恰好取出的
阅读全文
摘要:取模运算的应用 LeetCode里遇到了很多求数量的题目,由于数量过于庞大,最终会要求返回 (int)(result % Long), 其中 Long代表一个比较大的数,比如 10^9 + 1 今天再次遇到了这种题目,是求: (n! * m!) % q 其中 n m是 int , q是一个 long
阅读全文
摘要:二分法代码笔记 最近复习二分法的题目,发现左右区间的二分写法总是无法第一时间写出正确的,故痛定思痛,通过写笔记的形式记录下来。 这里需要说明的是,二分法多用于单调情况下的LogN复杂度的搜索,并非只用于排序数组。二分法是一种高效的搜索方法,前提是能分析出问题是随某一个自变量的单调函数 参考 labu
阅读全文
摘要:创建算法仓库 Gitee 1 创建仓库 配置主要的信息: 仓库名,仓库路径(路由),语言,ignore(如选择Java以忽略.class .jar等),默认分支(做题本选择master分支即可) 2 主机安装git git简明指南 其次,配置本地主机的 {user.name, user.email}
阅读全文
摘要:Leetcode 题单 1. LeetCode 热题 HOT 100 按编号排序 为了方便看,就不用表格了采用徐编号 格式:题号(url) 1-10 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 5. 最长回文子串 10. 正则表达式匹配 11. 盛最多
阅读全文
摘要:比较接口 在创建自己的数据类型时,实现了 Comparable 接口就能够保证用例代码可以将其排序 -- 算法第四版 记录的一个原因是学习的过程中用得上,另一个原因是查到的高分博客,甚至没有解释返回值的意义。。。 JDK文档 JDK文档 Compares this object with the s
阅读全文
摘要:迭代器接口 已经在文章中(抽象数据结构的实现 - 栈、队列、背包)讨论过了,回头来看探索之路非常曲折,这里做一个记录 作用 实现拿来就能for的快乐遍历 实现结构 这里以类 Stack为例,说明实现迭代器的完整流程 1.类主体实现泛型接口 Iterable<> public class Stack<
阅读全文
摘要:抽象数据结构的手动实现 算法第四版 栈 - 长度可变 接口 StackInterface.java package mystack; public interface StackInterface<T> { void push(T item); T pop(); boolean isEmpty();
阅读全文

浙公网安备 33010602011771号