- 博客(266)
- 收藏
- 关注
原创 操作系统-文件管理(参考王道)
文件的概念在系统运行时,计算机以进程为基本单位进行资源的调度和分配,而在用户进行的输入输出汇总,则以文件为基本单位。自底向上定义数据项:文件中最低级数据组织形式。基本数据项:用于表述一个对象的某种属性的一个值,是数据中可命名的最小逻辑数据单位,即院子数据。组合数据项:由多个基本数据项组成。记录:是一组相关数据项的集合。文件:是以计算机硬盘为载体存储在计算机上...
2018-08-27 12:18:52
1044
原创 操作系统-虚拟内存管理(参考王道)
1.传统存储管理方式的特征页式段式等各种内存管理策略是为了将多个进程保存在内存中以便允许多道程序设计,它们都具有以下两个共同的特征:一次性:作业必须一次性全部被装入内存后,方能开始运行。(1)当作业很大时,将使该作业无法运行。(2)当大量作业要求运行时,由于内存不足以容纳所有内存,只能使少数作业先运行,导致多道程序度的下降。驻留性:作业被装入内存后,就一直驻留在内存中,...
2018-08-25 15:11:18
3767
原创 操作系统-内存管理(参考王道)
内存管理的功能1.内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配麻烦,提高编程效率。2.地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理器必须提供地址变换功能,把逻辑地址转换成相应的物理地址。3.内存空间的扩充:利用虚拟存储技术或者自动覆盖技术,从逻辑上扩充内存。4.存储保护:保证各道作业在各自的存储空间内运...
2018-08-23 23:16:07
1811
原创 操纵系统-概述(参考王道)
操作系统特征:1.并发(最基本)2.共享(最基本)3.虚拟4.异步用户可以通过两种方式来使用计算机1.命令接口2.系统调用 引入多道程序设计后,程序的执行就失去了封闭性和顺序性。顺序性是单道程序基本特征。 库函数与系统调用的区别和联系?库函数是语言或应用的一部分,可以运行在用户空间中,而系统调用是操作系统的一部分,是内核提供给用户程序接口,运行在内核...
2018-08-23 19:57:22
677
原创 操纵系统-概述(面试提纲)
1并发和并行有什么区别?2.共享有几种方式?(2个)3.说明库函数与系统调用的区别和联系?4.处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换? ...
2018-08-23 19:57:10
290
原创 操作系统-进程(面试提纲)
进程与线程篇?1.PCB的作用?2.进程有哪几种状态?(5个)3.进程通信有哪几种方式?分别介绍一下(3个)4.有了进程后为什么还要引入线程,线程有哪些优点?进程调度算法篇0.从调度层次来看调度分为作业调度(高级调度),内存调度(中级调度),进程调度(低级调度),分别说说它们的作用和按频率给它们从高到底排序?1.进程调度方式?(2个)2.进程调度算法有哪些(6个)?...
2018-08-23 14:55:22
303
原创 死锁(参考王道)
可剥夺资源:是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。例如,优先权高的进程可以剥夺优先权低的进程的处理机。又如,内存区可由存储器管理程序,把一个进程从一个存储区移到另一个存储区,此即剥夺了该进程原来占有的存储区,甚至可将一进程从内存调到外存上,可见,CPU和主存均属于可剥夺性资源不可剥夺资源:当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机...
2018-08-23 11:14:18
1570
原创 操作系统(2.3进程同步)本章最后结合记录型信号量的使用方法和例题进行了详细讲解。
最近在准备推免的面试把王道的进程这一章拿出来做了一下,收获挺多的,写个文章总结下 2.3进程同步访问临界资源过程do{entry section;//进入区 设置访问临界区标志critical section;//临界区 访问临界资源exit section;//退出区 将访问临界区标志清除remainder section;//剩余区 }while(true)...
2018-08-17 22:55:52
5226
2
原创 孩子表示法(c++)
#include<iostream>#include<string>#include<algorithm>#include<vector>#include<queue>#include<stdlib.h>#include<cstdio>#include<string.h>
2018-07-31 16:52:41
1021
原创 排序算法实现
#include<iostream>#include<string>#include<algorithm>#include<vector>#include<queue>#include<stdlib.h>#include<cstdio>#include<string.h>
2018-07-28 15:10:43
249
原创 华东师范“高可信”夏令营 总结(2333 2019的学弟学妹们我知道你们需要这个)
首先感谢这个前辈的经历贴https://www.cnblogs.com/B704-6/p/7150123.html虽然几年和去年有些不样(那个对华师和安大有兴趣的漂亮学妹可以联系我)首先是华师今年四月16号左右出来的,https://yjszs.ecnu.edu.cn/system/yjszsxx_detail.asp?id=201804162015007515461610667650...
2018-07-16 20:25:19
7756
3
原创 leetcode 买卖股票的最佳时机
刚开始像试试暴力能不能过class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size()==1||prices.size()==0) return 0; int max=0; for(int i=0;i<...
2018-06-30 07:14:37
386
原创 leetcode 爬楼梯
这题有点坑没给范围,我取得10万,然后超级简单,因为每一步有多少个完全取决于他前面一阶的和前面两阶的,因此初始化p[0]=1,p[1]=1 ,然后根据p[n]=p[n-1]+p[n-2]递推即可,代码如下class Solution {public: int climbStairs(int n) { int p[100000]; p[0]=1; p[...
2018-06-29 23:22:46
713
原创 lectcode 26. 删除排序数组中的重复项
这题我开始的思路是如果和后面的相同就删除后面的,不相同则往后进一个,但我忽视了一个问题,题目需要的是原地删除,我这样则相当于每次都需要把后面的复制到前面来,这样复杂度就高了。左思右想了很久不知道怎么写,最后参考网上大佬的思路才做出来的,(自己之前一直是从0开始判断num[i]与num[i-1],大佬是从1开始判断num[i]与num[i-1],像大佬这样要单独判断数组为0q情况,我那个则需要单独判...
2018-06-29 23:11:56
239
原创 Adapter适配器模式(参考《java与设计模式》
为什么要有适配器模式?系统在初期规划时设计了一个Target类,然后第三方提供了一个实现与Target功能的Adaptee类,但此时Target因为与系统其他部分都有联系,Adaptee已经设计好了,两者可能都不可修改了,此时为了调用Adaptee这一目的就需要通过一个Adapter来作为一个中介帮助。因为Adapter是Target的子类或者继承了他的接口,根据里氏代换原则,只需在如何实现适配器...
2018-06-04 22:37:18
356
原创 观察者模式(参考《java与设计模式》
为什么要有观察者模式?软件系统中,在某些场景中需要实现一个对象状态发生变化时,与之相关的对象也需要对应的发生改变。观察者模式如何实现简单来说通过就是一个Subject类通过一个能够存储多个Observer类的容器来保存对,这些类的应用,当Subject类状态发生改变时,通知保存应用的Observer调用自身的更新方法。因为Observer在实际应用中不可能是同一个类因此需要定义一个Observer...
2018-06-03 20:28:14
382
原创 Template 模板方法设计模式(参考《java与设计模式》)
在java的各种个样设计模式中,大部分都通过委派来实现,尽量避免继承,因为继承会破坏封装,及时用继承,也是接口继承,类继承很少见,但是模板方法却是为数不多使用继承类的。为什么要有模板方法?顶层设计人员可以更加专注于整体架构的设计,而将具体子类实现交由程序员来完成。子类可以置换掉父类的可变部分,但是子类却不可以改变模板方法的顶层逻辑。模板方法如何实现?简单的说就是一个AbstractClass 在一...
2018-06-02 22:14:41
435
原创 Java 反射详解
在java.lang.reflect包中有三个类 java.lang.reflect中的三个类Field 描述域Method 描述方法Constructor 描述构造器三个类都有getName方法,Filed类还有一个getType方法,具体使用如下输入完整路径比如我的 输入jyh.Apackage j
2017-03-14 10:28:07
750
原创 java 参数可变的方法
这是Java SE5.0中开始引入的方法最直接的就是System.out.printf函数它允许“%d %s....”一直下去只要后面数量匹配就行了printf实现public class printf(String fmt,Object...args){return format(fmt,args);}...符号是java代码的一部分,表示可以接受任意数量的对象。
2017-03-13 22:43:26
524
原创 java -Xlint:uncecked和@SuppressWarning("unchecked") 基础使用
我在F盘放置了一个test.java文件如下import java.util.ArrayList;public class test {public static void main(String[] args) { EmployeeDB db=new EmployeeDB(); //@SuppressWarnings("unchecked") ArrayListresult=
2017-03-13 22:03:09
1697
原创 java clone
重点:1.所有数组类型都包含一个clone方法例子int[] test={1,2,3};int[] cloned=test.clone();2.clone是相对于string那样共用一个字符串的浅拷贝而言的深拷贝3.在子类中要重写父类的clone函数,先调用父类的clone函数克隆继承的那一部分,然后在单独克隆自己的那一部分。
2017-03-12 22:50:35
349
原创 Java 不支持多继承,所以引入接口
在C++中允许多继承但是在java中class A extends B,C{ ****** ******}这样是不被允许的,为了弥补不能多继承的问题和解决类多扩展的要求,java引入了接口这个概念。接口类似于一个框架,接口只是告诉你他要实现什么而把具体实现的任务交给你因此接口中不能有实例域和静态方法,因为他只是个框架,同时接口中所有的方法都会被声明成public而变
2017-03-12 22:13:14
506
原创 Java Comparable 接口
我们使用Arrays中的sort对我们编写的类进行排序时,都需要实现Comparable接口中的compareTo方法。比如我们要实现对类A的排序public class A implement Comparable{ ******* ******* public int compareTo(Employee other) { //假设通过A中的
2017-03-12 21:55:40
5882
原创 Uva10285 详解 最长的滑雪路径(Longest Run on a SnowBoard)
这题是图上的点虽然最多有一万个(100*100),但是每个点可以走的方向最多只只有四个,所以其实很快的就是通过行数*每列总数+列数来标识点的位置。然后遍历就好,用dp来记录当前点的最长严格递减序列#pragma warning(disable:4996)#pragma warning(disable:4996)#include#include#include#include#inclu
2017-02-21 00:55:41
1173
原创 Uva10934 详解 装满水的气球(Dropping water balloons)
因为给定气球数后,不同的尝试次数,值是固定的,所以先求出所有解节省时间。dp(i,j)=dp(i-1,j-1)+1+dp(i,j-1)可以理解为:假设当前在k层,他1.如果该层气球爆炸,则这一层需要消耗一个气球,和一次尝试,所以前面k-1层消耗了i-1个气球和j-1次尝试。2.如果该层气球不爆炸,则这一层不需要消耗气球,但是需要消耗一次尝试,所以j需要减1。#pra
2017-02-18 21:56:19
1712
原创 《算法竞赛入门经典》7.4回溯法
分支因子b 和 层数L,则最终的解答树节点总量为 (b^L-1)/(b-1)八皇后技巧 主对角线在一条线上 cur-C[cur]==j-C[j],副对角线cur+C[cur]==j+C[j]也可用个vis[][]来存储三种违规情况的出现,但结束这次访问时一定要改回去,这不同于求子集,这个是要你统计总共有多少条不同的方法,即使后面他门前面有相同的部分也是两种不同的方法。因为顺序不同Uva524素数环水
2017-02-05 12:16:52
601
原创 《算法竞赛入门经典》第七章7.1,7.2,7.3(总结)
7.1 一般如果让你求a,b满足h(a,b)=k,k为一个固定的函数,可以通过枚举a,然后用k反向求b,来减少一层循环,两个以上情况同理。 1.技巧总结如果求abcdefgh判断他们是否互补相等,可以从0~n分别对应,然后通过从0~n一 一对i==a[i]来判断是否每一个都存在,来得出结果。 2.尽量把除法表示的关系转换成乘法,避免int截位7.2生成有重复和无重复的排列都可以用c++库中的n
2017-02-05 00:07:29
687
原创 UVa156
自己的代码神他妈繁琐,还是刘汝佳伟大#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set
2016-11-26 23:37:22
551
原创 UVa400
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream
2016-11-26 22:00:46
486
原创 刘汝佳 BigInteger 大数模板
struct BigInteger{ static const int BASE = 100000000; static const int WIDTH = 8; vector<int> s; BigInteger(long long num = 0) { *this = num; } BigInteger operator=
2016-11-25 20:05:17
2796
原创 《算法竞赛入门经典》第六章6.1,6.2总结
UVa210UVa514这道题有两种方法,我用的方法耗时一些,想法来自于数字结构的考研书,即一个存在的出栈序列,如果一个数后面有比他小的书,这些数一定是按照从大到小的顺序排列,然后我就检查序列中每一个是不是都满足这个条件来判断。刘汝嘉的想法很巧妙,每次出去的时候只有两种可能要么来自进栈序列的开头数字或者栈顶的数字,所以根据这个来判断下就好了。UVa442这个没有什么算法思想就是普通的括号匹配问题技
2016-11-25 12:36:24
583
原创 《算法竞赛入门经典》第六章6.3树和二叉树总结
UVa679这道题刚开始我的想法就是和书上那个超时的代码,一样的,通过一个树状数组去模拟那个过程和书上分析的那样,测试数据太过庞大,虽然没有数组移动这样耗时的程序,但for(int i=0;i<I;i++)中的for最多可以有524288,而且还有一万组,肯定会超时。所以现在重点是如何减小对I的判断量,模拟一个过程后,我们很容易发现到底某个点的球数Number,如果是奇数,则最后一个往左边走,且左边
2016-11-24 19:10:15
955
原创 UVa839
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream
2016-11-23 23:37:01
597
原创 UVa122
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream
2016-11-23 20:25:42
463
原创 UVa679
超时代码#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sst
2016-11-23 20:25:22
390
原创 UVa12657
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream
2016-11-21 09:12:25
579
原创 UVa442
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream
2016-11-19 00:24:34
396
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人