摘要:简单题 1、两数之和 impl Solution { pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> { let mut mp = HashMap::new(); for i in 0..nums.len() { let num = n
阅读全文
摘要:编译器生成的目标代码需要运行在“运行时环境”中。 其中程序的逻辑地址是由编译器、操作系统与目标机(物理机)共同完成的。操作系统负责将逻辑地址映射为物理地址,而物理地址对整个内存空间编址。 一个目标程序的逻辑地址空间的运行适合映像包含 代码区 和 数据区。比如: (运行时刻内存被划分成代码区和数据区的
阅读全文
摘要:标识符:identifier 是一个字符串,通常由字母和数字组成。用来指向一个实体。所有的标识符都是名字,但不是所有的名字都是标识符,名字也可以是一个表示式,比如 x.y 。其中,x或者 y 是标识符也是名字,而 x.y 只能被叫作名字,而不能称之为标识符。 变量:变量表现的是开辟了某个特定的内存位
阅读全文
摘要:233 词法分析:scanning 将字符流变成词素序列。每个词素使用 <token-name, attribute-vallue> 格式的词法单元(token)表示。 position = initial + rate * 60 转换成 <id, 1> <=> <id,2> <+> <id,3>
阅读全文
摘要:一个语言处理系统:见图 一个编译器的各个步骤:见图
阅读全文
摘要:编程范式 - https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B 声明式:与 命令式对立 特点:关注结果,有严格计算逻辑,无副作用。命令式关注运行原理与过程。 声明式包含的子编程范式:函数式,DSL,约束式,回答集,响
阅读全文
摘要:概念 1.基础情形 2.不断推进 3.设计法则(design rule)假设所有的递归调用都能运行 4.合成效益法则(compound interest rule)同一实例切勿做重复性工作
阅读全文
摘要:一、冒泡排序、插入排序、希尔排序、快速排序与归并排序 效率概要: 冒泡排序是蛮力法,使用两层嵌套循环,基本效率为 O(n^2) 插入排序是减治法,第一趟排序,最多比较一次,第二趟排序,最多比较两次,以此类推,最后一趟最多比较N-1次,因此有1+2+3+…+N-1 = N*(N-1)/2。然而,因为在
阅读全文