秋招到九月中旬,突然来了很多的笔试,我发现有很多的知识是之前忽视了的。必须复盘记录一下,弥补薄弱点。
**记录和整理自己遇到的笔试知识点,答案仅供参考**
1. 矩阵连乘是用什么算法实现的?
- 动态规划
算法经典问题:
- 动态规划:背包问题、硬币组合、路径规划...(题目的问法一般是三种方式:1. 求最大最小值;2. 求可不可行 ;3. 求方案总数)
- 贪心算法:活动安排、股票问题(最多持有一支,可以无限买卖)、小船过河...
- 回溯法:全排列、八皇后、旅行商问题...
- 分治法:快排、最近点对、汉诺塔问题...
- KMP算法:字符串匹配
2. sql中,通过什么可以删除表的全部数据,而不删除表的结构?
- Truncate、Delete
sql语句:
- truncate table 表名;
- delete from 表名;
trancate、delete、drop
- trancate:保留表结构,只删除表数据,数据删除后无法找回,速度很快,因为其语句只记录整个数据页的释放。
-delete:保留表结构,只删除表数据,可恢复删除的数据,速度较慢。
-drop:删除数据及结构,无法找回。(*drop table 表名)
3. 通过什么写法可以吧 layout viewport设置成ideal viewport的宽度?
- width=device-width
布局视口( layout viewport)、视觉视口( visual viewport)、理想视口(ideal viewport)
- 布局视口:布局视口是网页布局的基准窗口,在 PC浏览器上,布局视口就等于当前浏览器的窗口大小。在移动端上,由于要使为PC端浏览器设计的网站能够完全显示在移动端的小屏幕里,所以布局视口会远大于移动设备的屏幕,就会出现滚动条
可以通过调用 document.documentElement.clientWidth/clientHeight来获取布局视口大小
- 视觉视口:用户通过屏幕真实看到的区域。当用户对浏览器进行缩放时,不会改变布局视口的大小,但是缩放会改变视觉视口的大小。
可以通过调用 window.innerWidth/innerHeight来获取视觉视口大小
- 理想视口:布局视口的一个理想尺寸,只有当布局视口的尺寸等于设备屏幕的尺寸时,才是理想视口。
可以通过调用:window.screen.width/height获取理想视口
❗️手机设备的默认的viewport是layout viewport,通常是980px,通过修改这个值来完成移动的适配,即将layout viewport的宽度设置为 ideal viewport的宽度,指定页面的初始缩放比例为不缩放,不允许用户缩放视口。
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
4. 执行命令"chmod+654file"后,file文件权限变成了什么?
- 文章所有者可读可写,与文件所有者同属一个用户组的其他用户可读可执行,其它用户组可读
chmod是Linux下设置文件权限的命令。chomd+参数+权限+文件名:设置文件的访问权限
+:表示增加权限
-:表示去掉权限在Linux里文件访问者可以分为所有者(user),所属用户组(group),其他用户(others)
chmod+ 后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户组的权限。权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。
5. OSI模型每层具体内容?
OSI七层参考模型,从上到下包括了应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
1⃣️应用层:
网络服务与最终用户的一个接口,是直接面向用户的一层。应用层通过各种协议(FTP——文件传输协议;HTTP/S——网上冲浪协议;SMTP——邮件传输协议;Telnet——与虚拟端之间的通信协议),为网络应用提供服务(网络应用是指使用会互联网的计算机应用),执行用户活动
2⃣️表示层:
表示层从应用层接受数据,这些数据是以字符和数字的形式出现的(如:happy、777),表示层会将这些字符和数据,转换成机器能够理解的二进制格式。同时表示层会加密数据,保证传输的安全
3⃣️会话层:
会话层用于建立和管理连接、启用、发送和连接数据。身份验证和授权这两个功能都由会话层执行
👉浏览器会执行应用层、表示层和会话层所有的功能
4⃣️传输层:
将上传输层通过分段(Segmentation)、流量控制(Flow Control)和差错控制(Error Control)来控制通信的可靠性。
👉传输层从会话层接收数据,并将数据分为称为“段”,且每个数据单元(Data Unit)包含一个源端口号、目的端口号和序列号。
👉传输层控制协议有面向连接的传输和面向无连接的传输,面向连接的传输通过TCP来实现的面向无连接的传输是通过UDP来实现的。
👉UDP比TCP更快,因为它不会提供任何关于数据是否真正交付的反馈,而TCP提供反馈
5⃣️网络层:
传输层将数据传递到网络层,网络层用于将接收到的数据段从一台计算机传输到不同网络中的另一台计算机,网络层的数据单元称为数据包(Packets)。网络层的功能是进行逻辑寻址(Logical Addressing)、路由(Rout)和路径确定(Path Determination)
6⃣️数据链路层:
数据链路层从网络层接收数据包,数据包包含了发送方和接受方的IP地址。有两种寻址方式:逻辑寻址和物理寻址。逻辑寻址在网络层已经完成,即在数据段(Segment)中添加了发送方和接收方的IP地址,以形成IP数据包。而物理寻址就是在数据链路层中完成的,其方法就是在IP数据包中添加发送方计算机和接收方计算机的物理地址:MAC,从而形成一个数据帧。
7⃣️物理层:
在物理层将之前步骤处理后的二进制序列转换成信号并在本地介质(铜缆、光纤、无线信号等)上传输,并在目标计算机应用层上显示数据。
6. eval("3+4")会输出什么?
- 7
👉eval() 函数可以接受某个字符串为参数,并执行其中的的 JavaScript 代码。eval(string)
eval(“var a=1”);//声明一个变量a并赋值1。
eval(“2+3”);//执行加运算,并返回运算值。
eval(“mytest()”);//执行mytest()函数。
7.KMP算法的时间复杂度?
- O(N+M)
假设m为模式串strM的长度,n为待匹配的字符串strN的长度。
O(m+n)=O( [m,2m]+ [n,2n] ) = 计算next数组的时间复杂度+遍历比较的复杂度
参考链接:
算法提高:贪心策略的11个经典题目_贪心算法几个经典例子_Ym影子的博客-CSDN博客
layout viewport visual viewport ideal viewport_Ares-Wang的博客-CSDN博客
这个OSI讲解很详细:图解OSI七层结构模型 - 知乎