来源Leetcode第15题三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
[
来源Leetcode第15题三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
[
机器字长:机器一次能处理的二进制位数
总线宽度:数据总线一次能并行传送的最大信息位数
主存容量与存储带宽
CPI (Clock cycles Per Instruction)
例1 假设一台计算机主频为1GHZ,在其上运行由2105条指令组成的目标代码,程序主要由4类指令组成,他们所占的比例和各自的CPI如下表所示,求程序的CPI和MIPS。
| 指令类型 | CPI | 指令比例 |
| :—————-: | :—: | :———: |
| 算术和逻辑 | 1 | 60% |
| Load/Store | 2 | 18% |
| 转移 | 4 | 12% |
| Cache缺失访存 | 8 | 10% |
解: CPI = 1*60% + 2*18% + 4*12% +8*10% = 2.24
MIPS = f/(CPI * 10^6) = 1*10^9/ (2.24 *10^6 ) = 446.4
MFLOPS (Million Floating-Point Operations Per Second)
CPU执行
=程序中所有指令的时钟周期数之和 / f
CPU 时间 = CPI * 指令条数 * 时钟周期例1 假设一台计算机主频为1GHZ,在其上运行由2*10^5条指令组成的目标代码,程序主要由4类指令组成,他们所占的比例和各自的CPI如下表所示,求程序的CPI和MIPS,求程序执行时间?
| 指令类型 | CPI | 指令混合比例 |
| ——————- | —— | —————— |
| 算术和逻辑 | 1 | 60% |
| Load/Store | 2 | 18% |
| 转移 | 4 | 12% |
| Cache缺失访存 | 8 | 10% |
CPI = 2.24
MIPS = 446.4
CPU时间 = 2 *10^5 * CPI / f = (2 *10^5 * 2.24 / 10^9 ) = 4.48 *10^-4 (秒)
CPU时间 = 指令条数/MIPS*10^6 = 2 *10^5 / 446.44*10^6
关键时间指标
来源Leetcode第11题盛最多的水
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
示例:
来源Leetcode第10题正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持’.’和’*‘的正则表达式匹配。
‘.’匹配任意单个字符
‘*‘匹配零个或多个前面的那一个元素
所谓匹配,是要 涵盖整个字符串s的,而 不是部分字符串s 。
来源Leetcode第80题删除排序数组中的重复项II
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1: