- 博客(16)
- 收藏
- 关注
原创 【操作系统】第二章(对应王道视频 2.4.1~2.4.4)
例如,并发执行的进程p1。p2分别申请并占有了资源r1,r2,之后进程p1又紧接着申请资源r2,而进程p2又申请资源r1,两者会因为申请的资源被对方占有而阻塞,从而发生死锁。:可以采用静态分配方法,即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足前,让它投入运行。各进程对不可剥夺的资源(如打印机)的竞争可能引起死锁,对可剥夺的资源(cpu)的竞争是不会引起死锁的。在并发环境下,各个进程都在等待对方手里的资源,导致各进程都死锁。,而该资源被B进程占有,此时A进程被阻塞,但是对自己已有的资源。
2025-01-20 15:00:40
740
原创 LeetCode刷题笔记(Day9)【KMP算法】
目录基础理论:KMP算法:模式匹配算法解决字符串匹配问题1.相关概念:2.KMP算法的本质:3.求前缀表:刷题笔记:1.28.实现strStr()力扣题目链接2.459.重复的子字符串力扣题目链接(1)前缀表:next数组,记录下标i之前(包括i)的模式串中,最大长度的公共前后缀。(2)前后缀:前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串。后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。(3)公共前后缀:前缀集合与后缀
2025-01-19 19:10:28
360
原创 【操作系统】第二章(对应王道视频 2.3.4~2.3.6)
如果刚开始是父亲进程先上处理机运行,则:父亲P(plate),可以访问盘子-->母亲P(plate),阻塞等待盘子-->父亲放入苹果V(apple),女儿进程被唤醒,其他进即使运行也都会阻塞,暂时不可能访问临界资源(盘子)-->女儿P(plape),访问盘子,V(plate),等待盘子的母亲进程被唤醒-->母亲进程访问盘子(其他进程暂时都无法进入临界区)-->...2.要求奇数号哲学家(先拿左筷子,后拿又筷子),偶数号哲学家相反。V(S):释放一个资源S,如果有进程在等待该资源,则唤醒一个进程。
2025-01-19 14:59:32
791
原创 LeetCode刷题笔记(Day8)【字符串】
(2)反转s.begin()~s.begin()+n。(3)反转s.begin()+n~s.end()步骤:(1)移除多余空格,只保留单词间的空格。(2)整体反转(反转区间左闭右闭)方法一:新开一个数组存储。(3)对每个单词反转。步骤:(1)全部反转。
2025-01-18 17:41:17
170
原创 LeetCode刷题笔记(Day7)【哈希表+字符串】
指针每次移动2K步,判断剩余字符串是否>=k,反转前k个,否则(不足k个)全部反转。相比于三数之和,多一层for循环嵌套。类似242. 有效的字母异位词。使用双指针法,注意去重细节。
2025-01-17 18:44:58
220
原创 【操作系统】第二章(对应王道视频 2.2.1~2.2.5)
(作业完成时间 - 作业提交时间)/ 作业实际运行时间。优点:可以处理紧急任务,也可以实现时间片流转方式执行进程。会饥饿的原因:可能会源源不断进入短进程,第一级就处理完成,导致第二个队列中的进程饥饿。没有其他就绪进程时,CPU运行闲逛进程。:等待时间 = 建立进程后的等待时间 + 作业再外存后备队列中等待的时间。操作系统偏好I/O型进程(I/O繁忙型进程)系统按照进程类型设置多个队列,进程创建成功后插入某个队列。(如:就绪队列)的代码。利用率 = 忙碌时间/总时间。= 作业完成时间 - 作业提交时间。
2025-01-16 23:07:04
803
原创 LeetCode刷题笔记(Day5)【链表】
题号:206.反转链表 力扣题目链接双指针法(双指针是指:pre和cur;tem仅用于记录,防止节点丢失)将后一指针指向前一指针,实现链表反转/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNo
2025-01-14 18:04:41
222
原创 LeetCode刷题笔记(Day4)【链表】
指针// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数。
2025-01-13 20:11:24
699
原创 【操作系统】第二章(对应王道视频 2.1.1~2.1.6)
实现进程的状态转换指两个进程之间产生数据交互。Q1:为什么进程通信需要操作系统支持?答:各进程拥有的内存地址空间相互独立。不能互相访问,需要操作系统支持。
2025-01-13 16:55:29
916
原创 LeetCode刷题笔记(Day3)【滑动窗口+螺旋矩阵】
Q3:当n%2==1时,填补中心位置(n/2,n/2)=count;【注意】:数组所有元素之和都小于target时,要设置返回0,否则会返回INT_MAX。【T中字符不按顺序出现也算,T中可能包含重复字符】Q1:边界如何处理?保持处理区间左闭右开【
2025-01-12 19:00:43
358
原创 LeetCode刷题笔记(Day1)【数组基础+二分查找】
定义:数组是存放在连续内存空间上的相同类型数据的集合。连续注意二维数组在内存的空间地址是连续的吗?答:不同编程语言的内存管理是不一样的,C++连续,Java就不连续。3. 数组的元素不能删除,只能覆盖。注意】vector和array的区别:(1)vector的底层实现是array。(2)vector是容器不是数组。
2025-01-11 16:33:23
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅