上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页
摘要: 思路: 这个题目描述的就很迷,是看了讨论才明白在问什么。 题目说是包含所有不同字符的最小子序列, 所有不同字符说明 s字符串中所有出现过的字符都要有,最小说明满足前一个条件后,子序列要尽量让小字符排在前面,如ab和ba,那ab就是更小的。子序列,说明要是例子里面的子序列,如"cbacdcbc",输出 阅读全文
posted @ 2021-04-08 18:54 Mrsdwang 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 思路: 这种旋转数组的题,首先要确定一个旋转点。可以用二分法来寻找。 因为有特例,当旋转n次时,数组就还原了,这就不满足二分法的 二段性,这支博客解释过,所以我们要特别把这种情况单独考虑。然后其余的情况都可以用二分法找到旋转点,根据自己寻找的旋转点的细节来判断时right还是位与right+1的位置 阅读全文
posted @ 2021-04-08 17:01 Mrsdwang 阅读(24) 评论(0) 推荐(0) 编辑
摘要: setup.s模块:完成OS启动前的设置,为操作系统管理硬件做准备。 例如: 读内存大小并保存起来,操作系统要管理内存得知道他多大。 获取光标的位置,显卡参数,根设备号等信息后,操作系统会形成很多数据结构来管理这些设备,来形成表来管理内存,这时候就是操作系统开始接管硬件。 后面会将操作系统移动到0地 阅读全文
posted @ 2021-04-08 11:15 Mrsdwang 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 思路: ###堆 这个题也可以用堆来做,和题313. Super Ugly Number的 堆做法一样。 通过大顶堆,即降序的堆来存放每个数,初始化res为1,因为这里的丑数的质因数只能是数组primes里面的,所以只要将2,3,5改为primes里的数即可。 在判断堆里是否有重复的元素,有则pop 阅读全文
posted @ 2021-04-07 20:04 Mrsdwang 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 思路: 和692.Top K words题目是相同的,一样的用hash map对出现的次数进行计数,然后最后再以pair的形式放如堆中,以出现次数为主要排序对象,用默认大顶堆即降序排序即可。 代码: class Solution { public: vector<int> topKFrequent( 阅读全文
posted @ 2021-04-07 18:50 Mrsdwang 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 思路: 因为还要考虑到字母顺序,所以肯定能用堆来存储。这里还需要先计数每个单词出现的次数,可以考虑用hash map来计数,再以pair的类型存放进堆,因为这里堆用大顶堆即降序排序,我们对出现次数取负值即可,然后每次加入进堆都判断一次是否数量大于K了,如果大于就pop掉堆顶元素,因为降序所以出现次数 阅读全文
posted @ 2021-04-07 17:34 Mrsdwang 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: ###暴力 刚开始看确实没思路,用的暴力法。因为他要的数是质因数只为2,3,5的。那么我们只需要获得通过2,3,5相乘得到的数即可。通过三个循环,先a=a2,然后b=a,b=b3,最后c=b,c=c5,这样得到的c就是是由23*5得到的数,但是这样得到的数,没法确定大小关系,所 阅读全文
posted @ 2021-04-07 17:05 Mrsdwang 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 思路比较简单,但要注意细节处理。 一开始就是想遍历寻找nums[i]<nums[i-1]获得旋转点,然后对这两侧的数组分别使用二分搜索,但是一直报错,找不到原因。 根据题解二分可知二分的本质是二段性,而非单调性。只要一段满足某个性质,另外一段不满足这个性质就可以用二分。 对于一 阅读全文
posted @ 2021-04-07 12:14 Mrsdwang 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 题目要求原地算法,在考虑因为最大有两个重复元素。那么我们运用双指针,一个用来记录遍历过且修改为不重复的数组长度slow,一个用来记录当前位置的fast指针。这个问题容易找到超过两个元素的重复元素,但是如何去掉是个问题。 因为我们允许重复两个,那么我们每次判断都是slow-2的元 阅读全文
posted @ 2021-04-06 23:55 Mrsdwang 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 因为num1的空间能容纳num1和num2的内容,所以第一种方法就是可以把num2的数全加进num1中然后在sort即可。 相当于调用快排时间复杂度为O((m+n)log(m+n)),空间复杂度O(1) 第二种方法是创建一个数组,然后比较num1和num2的大小放入新数组,最后 阅读全文
posted @ 2021-04-05 13:16 Mrsdwang 阅读(27) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页