- 博客(9)
- 收藏
- 关注
原创 DP学习总结
我们发现 i 是有规律的减⼩的,因此我们去看看 dp[i - 1][j] :dp[i - 1][j] = dp[i - 1][j - 1] || dp[i - 2][j - 1] || dp[i - 3][j - 1] …eg : 状态转移⽅程为:dp[i][j] = dp[i][j - 1] || dp[i - 1][j - 1] || dp[i - 2][j - 1] …因此,我们优化我们的状态转移⽅程为: dp[i][j] = dp[i][j - 1] || dp[i - 1][j]
2025-03-13 18:36:54
541
原创 常见位运算总结
一.基础位运算二.确定,修改,某个数中的第x位三.提取,干掉最右侧的1四.异或(^)运算的运算律五.结语位运算的思想与哈希表有些相似,不过一个是用比特位,一个使用哈希数组。
2025-02-24 19:10:16
187
原创 进程迷航——进程切换和真实调度算法
(1)首先我们看到nr_active,他表示调度时队列里有多少进程,nr>0,再进行后面操作(也就是查bitmap)。(2)其次,为了体现优先级,最普遍的队列调度肯定无法满足Linux的需求,所以Linux的运行队列里有一个queue[140]。这里存放着140个队列,不过[0,99]我们不考虑,因为[0,99]是实时优先级,他一般是用于工业,制造业的,比如汽车的刹车系统,所以他不能频繁切换(总不能你踩着踩着刹车给你切换到你的车载音乐去了吧owo)。优先级-60+(140-40)(3)
2024-11-19 20:35:20
2333
15
原创 初窥进程————进程的优先级
进程的优先级,单看概念我们可能没有太多体会,这是因为他需要和linux中的真实调度算法连接起来,很多现在不是很明朗的设计也会恍然大悟了,我们下一节来谈这个。在初学时我们容易将这两个概念弄混,想着优先级高不就证明他的权限高吗,他的权限高不就证明他的优先级高吗。注意:我们使用ps -l命令展现的已经为经过运算的PRI(new),不需要再在PRI基础上+nice。可以看到,是有权限再谈优先级,光有优先级没权限也是空扯,他们是相辅相成的关系。了解一个东西,我们往往先从三个方面入手,分别为是什么,为什么,怎么做?
2024-11-18 11:10:45
967
3
原创 接口,迭代器,概念与区别
总的来说,迭代器更关注数据遍历与访问,而接口则更关注行为的定义和多态的实现。在 C++ STL 中,迭代器通过定义容器的标准化访问方式,为通用算法提供了接口,使得不同类型的容器可以使用相同的操作逻辑。对于初始c++的我们来说,迭代器在某种程度上可以被视为容器的访问接口,而且这个访问接口(迭代器)里面还包含着更小的接口,如begin()、end(),这相当于接口里的接口。不能把这两个划上等号,但勉强能画上一个约等于,这对于我们初学者便足够,会用了。
2024-11-07 14:16:46
1807
11
原创 合并两个(或k个)排序的链表
本质上这题就是将两个链表里的值先取出,放到multiset中自动按照大小排序好,然后再新构建一个链表,将multiset里的每个值都赋给这个链表,最后返回构建的链表的表头。但在学了c++之后,掌握了stl这个伟大的库后,这题便变得非常简单了。这题与上一题并无二样,无非是链表从2个变成n个,底层都是取出链表数据放到multiset中,再构建一个新链表,返回新链表表头罢了。我们直接看题,如果是在c语言阶段,我们往往会被困扰许久,因为他包含着排序算法的搭建,指针的改向等一系列问题,十分繁琐。
2024-11-06 17:09:50
153
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人