金山笔试

发布时间 2023-10-15 11:53:14作者: 求知律己

1.选择题

1.1 四个页框,进程访问页号,LRU算法(Least Recently Used)最近最少使用算法。

1)概念:内存管理算法,根据数据历史访问记录淘汰数据,将最长时间未被访问的数据置换出去。当内存不足删除链表中最近最不常用的的数据,若从最右端进数据,那么删除的是最左端的数据
反之则删除最右端的数据。一般使用这种内存淘汰策略。
2)实现:设计LRU缓存,使插入和移除都是O(1),需要维护访问次序,但不能通过内存中的真实排序反应,使用双向链表。基于HashMap和双向链表实现LRU,若要实现线程安全,需要加上synchronize
使用HashMap存储key,put和get时间都是O(1),HashMap的value指向双向链表实现的LRU的Node节点
3)引申知识点:最近最不常用算法(LFU)根据数据访问频率淘汰数据,适用于大量热点访问数据

1.2.哈夫曼树,如2,3,4,6

1)求带权路径和
最优树,带全路径为该节点层次减一,长度是每个结点到根节点的长度
2+3(最底层) = 5(倒数第二层)+4 (倒数第二层)= 9 + 6(倒数第三层) = 15(倒数第底层)
2)树的带权路径长度为所有叶子结点带权路径长度之和

WPL = 每个结点到跟路径的长度X各自结点的权重

1.3.Linux常见命令

1.3.1 两种符号区分表示文件和目录

  • -(横线)表示非目录文件
  • d表示目录文件

1.3.2 三种访问权限及表示

文件或目录的访问权限分为只读、只写、可执行三种

  • r (只读),可用数字4表示
  • w(只写),可用数字2表示
  • x(可执行),可用数字1表示
  • -(无权限),即无rwx权限

1.3.3 四种符号表示文件所属者用户

  • u(用户user),即文件或目录的所有者
  • g(同组group)用户,即与文件属主有相同组ID的所有用户
  • o(其他other)用户
  • a(所有all用户),系统默认值

chown是变更文件所属者,chmod是改变文件所属者对文件的权限

1.3.4 变更文件所属者

1.将文件夹/logs的所有文件和子目录的所属者修改为admin,-R为递归方式逐层变更

chown -R admin /logs 

2.将文件夹/logs的所有文件和子目录的所属者修改为admin,所属组改为root

chown -R admin.root /logs

3. 把文件 log 的所有者改为 admin;

chown admin /logs

1.3.5 变更文件所属者对文件的权限

1.为info.log文件,所属者(u)增加写(w)权限;所属者(g)增加写(w)权限(增加权限+表示);其他用户(o)删除执行权限(删除权限-表示)

chmod ug+w,o-x info.log

2.为indo.log文件的所有用户增加可执行(x)权限,所有用户用a表示,增加权限通过+x表示

chmod a+x info.log

3.为logs及其下的所有文件和子目录的所属者(u),所属组(g),其他用户(o)赋予所有权限,即可读(r),可写(w),可执行(x)权限

chmod -R 777 /logs,其中-R表示递归每个文件及其子目录777并列表示所属者、所属组以及其他用户7表示三种文件权限的叠加,如r权限可通过4表示,w通过2表示,x通过1表示

touch创建一个空的文件夹

1.4.C类网络中子网掩码,计算出同一子网的其他IP

首先我们将已有IP与子网掩码按位与得到一个结果1然后比较其他IP地址与子网掩码按位与的结果2,若结果1与结果2相等,那么则两个IP地址在同一子网(这也就是计算网络号

 计算主机号是将子网掩码取反再与IP地址按位与所得结果

2. 小结

之前一直对Linux命令的修改很畏惧,通过这次对Linux权限命令的学习与总结,让我觉得Linux权限命令的题目很简单,记住几个核心的知识点如访问者权限、所属用户就好。

3.参考链接

https://www.zhihu.com/question/483543777/answer/2339831360

使用动态规划,一层循环遍历,i==0则dp[i] = 1.如果不在其中,再进一步判断下一个字符不在其中,那么dp[i] =dp[i-1];在其中dp[i] = dp[i-1] + 1;