795. Number of Subarrays with Bounded Maximum
摘要:数学的方式 是对于所有的字符分成简单的三类 0 小于 L 1 LR 之间 2 大于R 也就是再求 不包含 2 但是包含1 的子数组个数 不包含2的子数组个数好求 对于连续的相邻的n个 非2类数 就有 n (n 1)//2 + n 个连续子数组 但是包含1 的子数组个数不好求,这里求反 求不包含 包含
阅读全文
tiger-complier 问题记录 类型检查
摘要:1 注意区分 Ty_xxx 和 a_ 的区别 A 开头是对应的是原程序中的一个实体 Ty _ 开头则是类型检查中的一个抽象类 代表了一类实体 比如 A_recordTy 是原程序中的 type per {name:string , age:int} Ty_record 则是一种类型的抽象 是 Ty_
阅读全文
leetcode 854. K-Similar Strings
摘要:给定两个字符串, 判断最少经过多少次swap 可以使得 两个字符串一致, 首先类似的问题 是存在一个 underlying graph 的。 每一个字母都对应着一个节点,两个字符串的不一致表示为图上的一条有向边 最后的问题转化为 图上的最(多)圆环分解 要注意的是贪心策略并不能解决问题(即每一次都选
阅读全文
901. Online Stock Span [短于线性的时间统计单个元素的Span ]
摘要:Span 指这个元素之前连续的小于这个元素的值有多少个 原理: 维护递减栈 这个栈内的元素是递减的序列 新到一个元素x 依次出栈比x小的(也就是这个元素的Span) 这种问题的关键在于 新来的元素如果比前一个元素小 那么答案是1 如果比前一个元素大 ( 那么前一个元素在之后就完全没有用了, 所以可以
阅读全文
抽象语法分析 问题记录
摘要:到目前为止 完成了词法分析 语法分析 抽象语法生成的全部内容 。 记录以下出现的问题 问题一 书上提到貌似多余的一条规则,书上只是指出了和哪一条规则是相关的 但是并没有进行说明具体是哪一条规则 但是实践中 问题自然的出现了 有以下的文法规则 0 exp id[ exp ] of exp 1 exp
阅读全文
857. Minimum Cost to Hire K Workers
摘要:有N个工人,对于每一个工人存在一个 quality 和 wage 要雇佣 K个 工人 雇佣的工人 必须满足 这两者的比值相同 1 注意到我们可以按照按照工人的比值进行排序 可以分解成若干个更小的有相互关联的子问题 前 K 个 可以进行选择的工人, 按照第K个 工人的比值 即可 但是我们要利用这里 这
阅读全文
856. Score of Parentheses
摘要:计算表达式的值 ()=1 (A)=A 2 AB=A+B 1 表达式只有() 可以将所有的() 替换为1 然后给每一个1 乘上相应的权重,累加即可 2 使用栈结构 遇到( 就压栈一个0 遇到 ) 就出栈一个 v 同时压栈一个 max(2 v,1) 因为如果是() 的话 ,当时压栈的是0 这里要给这个表
阅读全文
855. Exam Room
摘要:维护一个数据结构要满足:一个教室线性排列的座位 0 ... N 1 调用seat 入座一个距离最近学生最远的座位 调用leave x 离座一个位置为x的学生 由于N最多是 10e9 所以选择维护 学生的位置这一个有序列表 使用了 bisect.insort 作为有序列表的插入方法 使用 list.r
阅读全文