上一周是真的忙活了一周,从周一到周天,整整一周,但是全部GG。
虽然GG但是真的有很多都不会。首先操作系统这周要好好看,尼玛,真的那天让我算时间片,我真的忘记了。
其实各个公司考查的重点都不太一样,今天总结一下。
就是笔试期间做的一点记录,尽量把疑惑今天都解开。
最重要的是,记住它们!!!!!!!!!!!!!!!!!!!!!!!!!!!!记住!!!!!!!!!!!!!它们!!!!!!!!!我这记性,哎,真的叫人难受。
滴滴
滴滴一上来的名字叫”智力题“然后看到的第一个题我就傻逼了。
0 5 27 119 495 2015 问我下一个。
我的天哪!!!!!
可以说是很崩溃了。
我想了一下 就是
0*4+5=5;
5*4+7=27;
27*4+11=119;
现在开始不对了
119*4+19=495;
495*4+35=2015;
我去!!!!!!!!
后来蒙了一个。
就2015*4+X。。。。
通项公式:an=2^(2n-1)-a^(n-11)-1……我的天哪!
然后就是概率论,数列,离散,数学归纳等。会写的就写了,但是基本全是蒙的,我蒙的,呵呵,真的没对过,高中的时候,物理,答案是ACD,我蒙了个B,这事太多了。
现在认真起来:
1、算法信息不可还原的是?
7HAT DES RSA LZ77
->RSA
不可还原就是在加密之后无法还原为原始密码。
2、某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是( )。
A.2
B.3
C.4
D.5
正确答案
C
答案解析
这种题用到组合数学中鸽巢原理的思想,考虑最极端情况,因为每个进程最多需要三台打印机,如果每个进程已经占有了两台打印机,那么只要还有多余的打印机,那么总能满足达到三台的条件。所以,将8台打印机分给K个进程,每个进程有两台打印机,这个情况就是极端情况,K为4。
3、编程题:
大概是 数字对2,3,5都可以整除,求符合条件的第n个数。
反正我每次写编程题,都是事后诸葛亮。
真的不难,恐怕 我有毒吧。。。。。。。。。
#include<iostream>
using namespace std;
int main(){
int n,m,i=1,j=1;
cin>>n;
while(j++){
m=j;
while(m%2==0){
m/=2;
}
while(m%3==0){
m/=3;
}
while(m%5==0){
m/=5;
}
if(m==1||m==2){
if(n==1){
cout<<1;
return 0;
}
i++;
if(i==n){
break;
}
}
else{
continue;
}
}
cout<<j<<endl;;
return 0;
}
还有一个记不住。
盛大游戏
这个就是放弃治疗了,我投的WEB,后来盛大的WEB取消了把我分到JAVA,我难过,我痛苦啊,凭着大三学过一学期JAVA的经验硬着头皮把选择写完,到了编程我一看,哎呦,不难。本想写,但是!!!只能用java,难过,本想C/C++也是可以的呢。
百度
这个的GG真的烦,学校的网络一晚上不停的掉,编程题直接上不去。就把前段答了,当然,我看了编程题,有网我也不会写。。。不是我放弃治疗,真的是能力所致,我写不出来。真的好难。但是舍友运维通过了,去面试了,好像一面挂掉了。哎,大家加油吧!!!
这个是真的很细!!!
1、Math.max();
返回最大数。
var result1=Math.max();//-Infinity
var result=Math.max(5,7);//7
var result2=Math.max(1,3,5.6,2);//5.6
var result2=Math.max(1,3,5.6,2,"1");//5.6
//错误的
var str=[1,2,3,4,5,1,3,9];
var result1=Math.max(str)//NAN
var result2=Math.max(1,3,5.6,2,"d");//NAN
var num=new Array(1,2,3,4,5);
var result1=Math.max(num);//NAN
2、关于this指针的
var Test ={
foo:"test",
func:function () {
var self=this;
console.log(this.foo);
console.log(self.foo);
(function () {
console.log(this.foo);
console.log(self.foo);
})();
}
};
Test.func();
我一开始的答案是
test
test
test
test
我应该是该不太理解这个立即执行函数吧。
正确答案:
笔试疑惑.html:25 test
笔试疑惑.html:26 test
笔试疑惑.html:28 undefined
笔试疑惑.html:29 test
那么就是在立即执行函数里面的this.foo了。这个是由于在立即执行函数中,产生了闭包,内部无法访问到外部的this,所以这个时候的this指向的window对象,则输出为undefined,而self.foo有值是因为在闭包函数外面this给到了self。
参考:
3、关于return的疑惑:
function Test(){
var x=0;
return function(){
console.log(x++);
}
}
var f1=Test(1),f2=Test(1);
f1(1);f1(1);f2(1);
答案:010
4、关于数组
var arr=[1,2,3];
arr.shift();
arr.push();
arr.unshift();
var ne=arr.concat([1,2]);
console.log(ne);
答案:[2, 3, 1, 2];
说一下,arr.shift();是去掉数组第一个元素。他的返回值是去掉的第一个元素。而 arr.unshift();是从数组的开头添加一个元素。他的返回值是新数组的长度。arr.push();会在数组的末尾插入元素并且返回新数组的长度。arr.concat();他里面是参数不论是什么,都是返回一个数组,作为一个数组元素存在。而[1,2]会添加到当前的数组中。
5、关于定时器
for(var i=1;i<=3;i++){
setTimeout((function(a){
console.log(a);
})(i),0);
};
答案:1,2,3
并不是像这样的4,4,4
for(var i=1;i<=3;i++){
setTimeout(function(){
console.log(i);
},0);
};
原因:在第二个的4,4,4是Javascript事件处理器在线程空闲之前不会运行。所以等for循环结束之后执行定时器,这个时候i已经变为4了。而第一个就是为了改变这样的现状 ,在定时器中加入了立即执行函数,所以它的值是正确的。
6、邻接矩阵
大二的时候,真的算法的学的挺好的,谁知道一年没理这玩意就什么都不会了。
邻接矩阵就是可以用来表示图的一个矩阵。
具体了解:百度一下
这里重点两点:1、对称的是无向的。2、这他妈的真的很容易理解。
0 0 1 1 1
0 0 1 1 0
1 1 0 1 0
1 1 1 0 1
1 0 0 1 0
求顶点和边数?
ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,ORZ,5,14。出度度入度就不说了,我下次要是记不住就抽自己,真他妈的猪脑子!!!
7、中缀式->后缀式
规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减)则栈顶元素依次出找并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。
可以说是非常清晰了。
中缀式:a*(b-(c+d))
后缀式->abcb+-*
8、文件权限
10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
可以说是比较难记了。
9、标准输入输出的重定向
shell上:
0表示标准输入
1表示标准输出
2表示标准错误输出
默认为标准输出重定向,与 1> 相同
2>&1 意思是把 标准错误输出 重定向到 标准输出.
&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中。
10、排序最快的?
快速排序吧,毕竟名字在这呢!
总结一下,百度其实我的选择凑合,编程一个没出来就很悲伤了。