摘要:
思路: 直接用大顶堆,每次取两个数来比较即可,难点是循环的条件为什么。 考虑两种情况,最后堆只有一个元素,那么就返回这个元素值,最后堆没有元素,为什么呢,因为我们每次去两个数,如果倒数第二步还剩下两个石头,且相同重量,那么最后就没有元素了。针对这两种情况都是堆的元素数量>1,因为最后结果只有1和0嘛 阅读全文
摘要:
思路: 这道题有个要求就是(A)的得分要乘2,那这就有个问题了,如何记录一个括号之间有多少分呢,又该如何记录以前的分数,并能区分不是一个括号里面的之前算出来的分数。 又因为我们可能回下意识的把栈定义为char类型把'('放入栈里,这样就没思路了。 考虑题目说给的string一定是平衡括号对,所以我们 阅读全文
摘要:
思路: 刚开始看到这题,没能准确理解意思,直接用两个指针分别从pushed的第一个元素开始往后,从popped最后一个元素向前,然后比较,不相等就return false,然后错误,对比了一下例子发现 pushed=[1,2,3,4,5],popped=[4,5,3,2,1]而不是[5,4,3,2, 阅读全文
摘要:
思路: 这个题目描述的就很迷,是看了讨论才明白在问什么。 题目说是包含所有不同字符的最小子序列, 所有不同字符说明 s字符串中所有出现过的字符都要有,最小说明满足前一个条件后,子序列要尽量让小字符排在前面,如ab和ba,那ab就是更小的。子序列,说明要是例子里面的子序列,如"cbacdcbc",输出 阅读全文
摘要:
思路: 这种旋转数组的题,首先要确定一个旋转点。可以用二分法来寻找。 因为有特例,当旋转n次时,数组就还原了,这就不满足二分法的 二段性,这支博客解释过,所以我们要特别把这种情况单独考虑。然后其余的情况都可以用二分法找到旋转点,根据自己寻找的旋转点的细节来判断时right还是位与right+1的位置 阅读全文
摘要:
setup.s模块:完成OS启动前的设置,为操作系统管理硬件做准备。 例如: 读内存大小并保存起来,操作系统要管理内存得知道他多大。 获取光标的位置,显卡参数,根设备号等信息后,操作系统会形成很多数据结构来管理这些设备,来形成表来管理内存,这时候就是操作系统开始接管硬件。 后面会将操作系统移动到0地 阅读全文