第二二维线性可分问题求解解,要求详细

中国大学生求职招聘|交流平台|社区论坛网站 - 乔布简历
先看看TCL的最全求职攻略,戳这里投递成功率更高!
1、招聘对象:主要面向2016年毕业的本科、硕士应届生;
2、专业要求:计算机、软件工程、通讯等相关专业;
3、申请方式:
试卷类型:软件开发A1
考试时长:120分钟
一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)
1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA
B.CDFEGHBA
C.FGHCDEBA
D.CFHGEDBA
2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组
B.有序链表
3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)
A.快速排序
C.归并排序
D.冒泡排序
4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
5 当n=5时,下列函数的返回值是:(A)
[cpp] view plaincopy
int foo(int n)
return foo(n-1)+foo(n-2);
S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)
Unix系统中,哪些可以用于进程间的通信?(BCD)
B.共享内存
C.消息队列
8 静态变量通常存储在进程哪个区?(C)
9 查询性能(B)
A. 在Name字段上添加主键
B. 在Name字段上添加索引
C. 在Age字段上添加主键
D. 在Age字段上添加索引
IP地址131.153.12.71是一个(B)类IP地址。
11 下推自动识别机的语言是:(C)
A. 0型语言
B.1型语言
C.2型语言
D.3型语言
12 下列程序的输出是:(D)
[cpp] view plaincopy
#define add(a+b) a+b
int main()
printf(“%d\n”,5*add(3+4));
13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)
A 找不到该页面
B 禁止访问
C 内部服务器访问
D 服务器繁忙
14 如果某系统15*4=112成立,则系统采用的是(A)进制。
15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)
TCP和IP分别对应了OSI中的哪几层?(CD)
Application layer
Presentation layer
Transport layer
Network layer
17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)
18 同一进程下的线程可以共享以下?(BD)
B.data section
C.register set
D.file fd
19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
20 如何减少换页错误?(BC)
进程倾向于占用CPU
访问局部性(locality of reference)满足进程要求
进程倾向于占用I/O
使用基于最短剩余时间(shortest remaining time)的调度机制
21 递归函数最终会结束,那么这个函数一定?(B)
A 使用了局部变量
B 有一个分支不调用自身
C 使用了全局变量或者使用了一个或多个参数
D 没有循环调用
22 编译过程中,语法分析器的任务是(B)
A分析单词是怎样构成的
B 分析单词串是如何构成语言和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构
23 同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进
B.忙则等待
C.有限等待
D.让权等待
24 进程进入等待状态有哪几种方式?(D)
A CPU调度给优先级更高的线程
B 阻塞的线程获得资源或者信号
C 在时间片轮转的情况下,如果时间片到了
D 获得spinlock未果
25 设计模式中,属于结构型模式的有哪些?(BC)
C 代理模式
D 观察者模式
二、填空题(共4题10个空,每空2分,共20 分)
1 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。
2 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。
3 二进制地址为,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。
4 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。
[cpp] view plaincopy
typedef struct node
struct node *lchild,*
int N2,NL,NR,N0;
void count(node *t)
if (t-&lchild!=NULL)
if (t-&rchild!=NULL)
else NL++;
else if (t-&rchild!=NULL) NR++;
else N0++;
if(t-&lchild!=NULL) count(t-&lchild);
if(t-&rchild!=NULL) count(t-&rchild);
}/* call form :if(t!=NULL) count(t);*/
三、Web前端方向简单题(略)
四、其他方向简答题(共2题,每题20分),选作题,不计入总分)
1 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
2 A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
来源于IT面试网
更多腾讯校招的资讯请猛戳
跟风瞎投了微软三个软件职位,收到第二次笔试通知。偶是做硬件的,软件功底不 咋的,想想也就是去见见世面+做分母的,加上这段时间正好有事,就啥书都没看, 没准备就靠以前的基础去被“bishi”了。
考试地点在清华西阶梯教室,曾打电话要求换回学校考,不予。要求提前半小时到 ,偶到门口1点35,吃饭吃久了。排队,检查通知单、身份证,就座,发呆,交书包 ,主考官念规则,发稿纸(一张),发试卷(一叠,约10张左右)。2点准时开始。
1、封面要求填写个人资料,及申请的部门和职位,顺序不能错。主考官给出所有职位名称,自己凭印象填写。太久了都不记得了,来前也忘记看了,于是使劲猜了个 顺序上去,回来一看居然对了hoho。提醒大家:笔试面试前一定要再看看自己申请 的职位信息(有点废话了)。
2、试题全英文,要求答题也是全英文。第一部分,多选题,选对给1.5,没选0,选错-1.5。涉及c,c++,c#,汇编,硬件,网络,数据库等各方面,有难度。偶概念 不清,而且有些就不会,于是答得很shi,瞎填了一部分,几题没写,也就几个有把 握的。
3、第二部分:阅读逻辑。单选题,要求选最好的答案。前两篇是两段话,每段一题,选出能准确反映文中意思的选项,比较简单,第一段有些单词不懂,但不影响选 择。第三篇是一个安排课表的题:6天中3天小提琴课3天钢琴课,然后几个小提琴老 师几个钢琴老师,给出几条限制条件,诸如谁上课必须在第几天,谁不在谁前一天 后一天上课之类的。
考题好几个,根据这些说明选择描述正确的话。这些逻辑还是 不复杂的,头脑清晰一点就很容易答,而且英文也不难懂。
4、第三部分编程。第一题是编写一个计算一维数组中所有整数的最大公约数的函数,还行。第二题是查找字典问题,要求设计一合适的字典数据结构,然后编写一查 找函数,打印出以给点字符串开头的所有词。没时间写了,写了几句中文的说明、第四部分叙述题。
说明msn message中需要改进的或者需要增加的功能,说明原因;然后给你三个月,你将怎样实现这些改进。一顿瞎答,很多词想不起来,然后 草草写了大概半页就完事了。看了一下周围的,几个人都奋笔疾书了一页有多。我 实在是想不出什么来,也从没用过这个-_-因为老要加代理。
5、第五部分测试题。第一题给出一段程序,检查是单链表或循环链表。要求找出所有的bug,然后给出所有的test case。找bug还行,test case可能没写全。第二题 是给出一个系统函数所有的test case,具体什么要求忘记了,反正看了一眼就放弃 了,不会。
停笔,排队,交卷。
我坐在靠后面,等着交卷等了15分钟有多,其间看mm(有一大 美女考了半小时多的样子就交卷走人了,可惜)和数椅子(西阶梯教室的椅子真差 )。出考场门后在二校门前看人照相,然后骑车回来。第三次上学校新食堂吃饭, ,,回来写这个游记。。。
被p&g鄙视了,粉不爽。估计是性格测试不过关,看来偶只能干研发的活了,等待继续被mars鄙视。。。
祝福xdjm们都能找到诚心如意的工作!
(本文由小编整理发布,如有侵权请联系我们。)
更多微软求职信息请戳:
试卷类型:软件开发A1
考试时长:120分钟
一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)
1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA
2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组 B.有序链表 C.AVL树 D.Hash表
3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)
A.快速排序 B.堆排序 C.归并排序 D.冒泡排序
4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
5 当n=5时,下列函数的返回值是:(A)
[cpp] view plaincopy
int foo(int n)
return foo(n-1)+foo(n-2);
A.5 B.7 C.8 D.10
6 S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)
A.37.5% B.32.5% C.28.6% D.26.1%
7 Unix系统中,哪些可以用于进程间的通信?(BCD)
A.Socket B.共享内存 C.消息队列 D.信号量
8 静态变量通常存储在进程哪个区?(C)
A.栈区 B.堆区 C.全局区 D.代码区
9 查询性能(B)
A. 在Name字段上添加主键
B. 在Name字段上添加索引
C. 在Age字段上添加主键
D. 在Age字段上添加索引
10 IP地址131.153.12.71是一个(B)类IP地址。
A.A B.B C.C D.D
11 下推自动识别机的语言是:(C)
A. 0型语言 B.1型语言 C.2型语言 D.3型语言
12 下列程序的输出是:(D)
[cpp] view plaincopy
#define add(a+b) a+b
int main()
printf(“%d\n”,5*add(3+4));
A.23 B.35 C.16 D.19
13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)
A 找不到该页面
B 禁止访问
C 内部服务器访问
D 服务器繁忙
14 如果某系统15*4=112成立,则系统采用的是(A)进制。
A.6 B.7 C.8 D.9
15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)
A a(000) b(001) h(01) i(10) o(11)
B a(0000) b(0001) h(001) o(01) i(1)
C a(000) b(001) h(01) i(10) o(00)
D a(0000) b(0001) h(001) o(000) i(1)
16 TCP和IP分别对应了OSI中的哪几层?(CD)
A Application layer
B Presentation layer
C Transport layer
D Network layer
17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)
A.EDCBA B.DECBA C.DCEAB D.ABCDE
18 同一进程下的线程可以共享以下?(BD)
A. stack B.data section C.register set D.file fd
19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
A.123 B.231 C.321 D.213
20 如何减少换页错误?(BC)
A 进程倾向于占用CPU
B 访问局部性(locality of reference)满足进程要求
C 进程倾向于占用I/O
D 使用基于最短剩余时间(shortest remaining time)的调度机制
21 递归函数最终会结束,那么这个函数一定?(B)
A 使用了局部变量
B 有一个分支不调用自身
C 使用了全局变量或者使用了一个或多个参数
D 没有循环调用
22 编译过程中,语法分析器的任务是(B)
A分析单词是怎样构成的
B 分析单词串是如何构成语言和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构
23 同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进 B.忙则等待 C.有限等待 D.让权等待
24 进程进入等待状态有哪几种方式?(D)
A CPU调度给优先级更高的线程
B 阻塞的线程获得资源或者信号
C 在时间片轮转的情况下,如果时间片到了
D 获得spinlock未果
25 设计模式中,属于结构型模式的有哪些?(BC)
A 状态模式 B 装饰模式 C 代理模式 D 观察者模式
二、填空题(共4题10个空,每空2分,共20 分)
1 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。
2 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。
3 二进制地址为,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。
4 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。
[cpp] view plaincopy
typedef struct node
struct node *lchild,*
int N2,NL,NR,N0;
void count(node *t)
if (t-&lchild!=NULL)
if (t-&rchild!=NULL) N2++;
else NL++;
else if (t-&rchild!=NULL) NR++;
else N0++;
if(t-&lchild!=NULL) count(t-&lchild);
if(t-&rchild!=NULL) count(t-&rchild);
}/* call form :if(t!=NULL) count(t);*/
三、Web前端方向简单题(略)
四、其他方向简答题(共2题,每题20分),选作题,不计入总分)
1 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
2 A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
来源于CSDN
更多腾讯校招的资讯请猛戳
1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在 中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。
2、A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
(博主能力有限,不是所有题目都会求解,第1题不是我的擅长,这里贴出来让大家知道腾讯的考题。我的重点放在第2题上面!)
第2题 题解(个人看法,仅供参考!)
思路1:排序法
对集合A和集合B进行排序(升序,用快排,平均复杂度O(N*logN)),设置两个指针p和q,同时指向集合A和集合B的最小值,不相等的话移动*p和*q中较小值的指针,相等的话同时移动指针p和q,并且记下相等的数字,为交集的元素之一,依次操作,直到其中一个集合没有元素可比较为止。
优点:操作简单,容易实现。
缺点:使用的排序算法不当,会耗费大量的时间,比如对排好序的集合使用快排, 时间复杂度是O(N2)
这种算法是大家都能比较快速想到的办法,绝大多数时间放在了对集合的排序上,快排的平均复杂度是O(N*logN),对排好序的集合做查找操作,时间复杂度为O(N),当然这种算法肯定比遍历要快多了。
  code:
  #include
  #define M 8
  #define N 5
  int cmp(const void *a, const void *b)
int *x = (int *)a;
int *y = (int *)b;
return (*x) - (*y);
  int main(void)
int A[] = {-1, 2 ,39 ,10, 6, 11, 188, 10};
int B[] = {39 ,8 , 10, 6, -1};
//对数组A和数组B进行快排
qsort(A, M, sizeof(int), cmp);
qsort(B, N, sizeof(int), cmp);
//FindIntersection(A, B);
int i = 0, j = 0;
int cnt = 0;
int result[M & N ? M : N];//保存集合的结果
  //设置i、j索引,分别指向数组A和B,相等则同时移动,不相等则移动较小值的索引
while(i & M && j & N)
if(A[i] == B[j])
result[cnt] = A[i];
else if(A[i] & B[j])
  for(i = 0; i & i++)
printf(&%4d&, result[i]);
来源于互联网
更多腾讯校招的资讯请猛戳
笔试题分成两部分,第一部分是行测,第二部分是算法设计题。
行测中有言语理解题和数字推理以及图形观察题,考试时间20分钟。
专业题有三道,都是算法设计题,考试时间为40分钟,先写思路,再写算法。下面回忆一下算法设计的三道题目。
第一题:质因数分解,给定一个整数,求出该数的所有质因数,如90=2*3*3*5;
首先是判断一个数是不是素数的函数:
1 bool isZS(int n)
int sqrtN = (double)sqrt((double)n);
if ( n==1 )
if ( n==2 )
if (sqrtN*sqrtN == n)
for (int i=2;i&=sqrtN;i++)
if ((n%i) == 0 )
然后是递归求解所有的质因数:
1 void findAllZYS(int n)
if (n == 1)
if (n == 2)
if (isZS(n))
cout&&& &&&n&&
int i = 2;
for (i=2;i&=n;i++)
if (isZS(i) && n%i == 0)
cout&&i&&& &&&
int nxtN = n /
if (isZS(nxtN))
cout&&nxtN&&& &&&
findAllZYS(nxtN);
第二题:求二叉树的深度,当只有根节点的时候,二叉树的深度为1,int Depth(pTreeNode * pRoot);
(坐等大神解答)
第三题:求一个字符串中不重复字符的最长子串,如字符串“abacdefgafg”,最长的不重复的子串为“acdefg”,长度为6,当有两个长度相同的字符串,输出第一个最长的字符子串。
原数组:Array[n]
然后,我们定义三个数组:
prefixLen[i]:表示[i...n-1]这个子串中最长的不重复字符子串的长度。
maxlenStart[i]:表示以Array[i]为起点的最长的不重复字符子串的起点(其实恒有maxlenStart[i]=i,但是作者这么写了,我也就声明一下吧)。
maxlenEnd[i]:表示以Array[i]为起点的最长的不重复字符子串的终点。
prefixLen[i]&=maxlenEnd[i]-maxlenStart[i]+1
即,[i...n-1]这个子串中最长的不重复字符子串的长度大于或者等于以i为起点的最长的不重复字符子串。
下面是我们DP的过程。
(缩写prefixLen[i]:P[i],maxlenStart[i]:S[i],maxlenEnd[i]:E[i])
首先定义起始边界:
P[n]=0 S[n]=n E[n]=n-1
然后,注意,我们是从n-1到0这种从字符串右到左的顺序去动态规划的。
首先,肯定有:S[i]=i
然后,我们得讨论:
1.E[i+1]-S[i+1]+1=P[i+1](即i是相邻着i+1..n子串的中最长的不重复字符子串的)
1.1:如果Array[i]和S[i+1]...E[i+1]中元素都不相等,则:
P[i]=P[i+1]+1,S[i]=i,E[i]=E[i+1]
1.2:如果Array[i]和S[i+1]...E[i+1]中元素的某一个相等,则:
找到S[i+1]...E[i+1]中和Array[i]相等的元素Array[j]
P[i]=max(P[i+1],j-i),S[i]=i,E[i]=j-1
2.E[i+1]-S[i+1]+1!=P[i+1](即i不相邻i+1..n子串的中最长的不重复字符子串)
2.1:如果Array[i]和S[i+1]...E[i+1]中元素都不相等,则:
P[i]=max(P[i+1],E[i+1]-S[i+1]+2),S[i]=i,E[i]=E[i+1]
2.1:如果Array[i]和S[i+1]...E[i+1]中元素的某一个相等,则:
找到S[i+1]...E[i+1]中和Array[i]相等的元素Array[j]
P[i]=max(P[i+1],j-i),S[i]=i,E[i]=j-1
下面我们用题中的&abacdefgafg&模拟一下DP的过程:
/0:P[11]=0
S[7]=7 E[7]=9
然后我们从0...n-1中找到i使P[0]=E[i]-S[i]+1,输出Array[S[i]...E[i]]即可。
另外,我们可以做些优化:
每次都判断Array[i]和S[i+1]...E[i+1]中元素的某一个是否相等是费时的,我们可以在预处理中找到Array[i]的下一个相等元素的下标存在Index[i]中。然后每次查看Index[i]是不是在S[i+1]...E[i+1]之内就可知道Array[i]和S[i+1]...E[i+1]中元素的某一个是否相等。
方法是利用Hash(假设字符串是Ascii的)。
void BuildIndex(int *index,string &array,int n)
int hash[128];
for(i=0;i&128;i++)
hash[i]=-1;
for(i=n;i&0;--i)
index[i-1]=hash[array[i-1]];
hash[array[i-1]]=i-1;
完整代码:
#include &iostream&
#include &string&
void BuildIndex(int *index,string &array,int n)
int hash[128];
for(i=0;i&128;i++)
hash[i]=-1;
for(i=n;i&0;--i)
index[i-1]=hash[array[i-1]];
hash[array[i-1]]=i-1;
void longestSubseqWithUniqueChars(string &array,int n)
cout&&&Size=&&&n&&
int *index=new int[n];
BuildIndex(index,array,n);
int *P=new int[n+1];
int *E=new int[n+1];
for(i=n-1;i&=0;--i)
if((index[i]&=i+1)&&(index[i]&=E[i+1]))
E[i]=index[i]-1;
P[i]=P[i+1]&(index[i]-i)?P[i+1]:(index[i]-i);
if((E[i+1]-i)==P[i+1])
P[i]=P[i+1]+1;
E[i]=E[i+1];
P[i]=P[i+1]&(E[i+1]-i+1)?P[i+1]:(E[i+1]-i+1);
E[i]=E[i+1];
for(i=0;i&n;i++)
if(E[i]-i+1==P[0])
for(int j=i;j&=E[i];j++)
cout&&array[j];
int main()
longestSubseqWithUniqueChars(input,input.size());
代码中的判断我做了些调整,和上面写的不完全一样。
一面一般是考计算机组成原理,操作系统,以及一些基础知识。
常出现的流程:
先做一套笔试卷
根据笔试题回顾考你
根据简历考你
你有什么要问的
二面一般是着重考你的领域深入的能力和潜力,题目会相对较难
三面(hr面)这里比较容易有压力面试,主要的就是考验你是否对360死忠。
常出现问题
为什么选择360
有女朋友吗?(还有由此延伸类似的问题)
用360的产品吗?
你有什么要问我的吗?
以下是一些经典题型
1、 询问项目相关内容,并根据项目具体问题提出问题;
2、Activity的生命周期,什么时候能现实出来
3、提出一些关于360安全卫士某些功能的实现你的解决方案;
4、写程序大数据量方面的问题。
5、JAVA几个基本类型
6、处理String有哪些类,有什么区别。
7、数组是类还是基本类型
8、Object有什么方法
9、数据库连接池的概念
10、线程池的概念
11、设计商品一个推荐系统;
12、两数组求交,写代码及说明复杂度
13、概率题
14、虚函数的实现和作用、epoll的原理和用法、常见的shell命令的用法
15、hash函数
16、Mysql集群的实现
17、文档格式相关解决方案
18、sql如何防止注入攻击
19、mysql的explain详细使用方式
20、如何实时推送数据到客户端,通过http
21、进程之间如何通信,java垃圾回收,map线程安全,单例模式
22、linux进程注入,多版本360怎么运行
2月22号,不是我的幸运日。我收到了google的thank you letter。
等待一周等来这个结局,未来又开始变得虚无飘渺起来。
收到邮件后打了个电话过去,想争取,却改变不了事实,人事说欢迎以后再来应聘,她邮件里也说了,保留简历一段时间,如有匹配再联系。
想想也是,人生波折不断,我怎么可能如此幸运,一毕业就乘上自己梦想的公司。
在给这次应聘划上句点的同时,也整理下自己面试经历,以惠及后人,也算给google做个宣传,在应届生网上可是很久不见google面试的更新,以至于大家都怀疑google是否还存在。
本人背景:女生,本科软件工程,硕士国外计算机工程,有软开工作经验1年及其他实习经验,内推。
应聘职位:map quality associate
面试 :2月15日 4轮一对一面试,每轮半小时,每个面试官针对不同角度对你进行提问。
面试官都是SQE队伍的,也就是search quality evaluator团队.
每个人风格也不一样,第一个很亲和;第二个一个问题快问下去,有点像压力测试,对方做销售市场的;第三个是工程师,不是技术面试也就很轻松,对着简历问下去;第四个感觉是个头头,聊天随便问。
1)自我介绍,职业定位,对google产品的了解,竞争对手的相应产品及其优缺点,平时上网浏览什么网页,情景模式(如果你是风投,投资哪家互联网公司;如果过去两年重来,会做什么;如果政府授权你改善交通,你有什么主意等等),你有什么问题。
2)最体现你解决问题,分析问题能力的事件,针对这个事件使劲问。还问你如何做presentation的事宜。最后问你有什么问题。
3)过简历,对google map的改进,和竞争对手的产品比较,然后对搜索了解吗。
4)会编程吗,http访问协议等等,因为工作还是需要编程写点代码的。遇到最大的挫折是什么。
问题都不难,只要自信,对google产品及行业有一定了解,就能表现得不错。相对其他公司某些为了刷人而刷人的笔试,面试等,这还是较简单的。也或许我没看出简单里的难点,所以才失败了。
邮件里写的是,面试对我印象不错,可是仔细看过简历,觉得没有特别匹配。确实,简历只是列举经历成就等,并没针对这个职位的需求做特别描述。
和内推的朋友说起,他说我表现得太想进google了,甚至为此做了个视频,一方面是好事,一方面却给人事扣分机会。人事也怕招错人,所以会比较谨慎。你这么喜欢google还告诉她手上还没有其他offer,那不是绕一圈可能还会回去。她没必要现在就把你招进来。
不管怎么说,错过了这次机会,很遗憾。写此文悼念。
更多关于Google谷歌校招/实习的攻略,请移步:
2月22号,不是我的幸运日。我收到了google的thank you letter。
等待一周等来这个结局,未来又开始变得虚无飘渺起来。
收到邮件后打了个电话过去,想争取,却改变不了事实,人事说欢迎以后再来应聘,她邮件里也说了,保留简历一段时间,如有匹配再联系。
想想也是,人生波折不断,我怎么可能如此幸运,一毕业就乘上自己梦想的公司。
在给这次应聘划上句点的同时,也整理下自己面试经历,以惠及后人,也算给google做个宣传,在应届生网上可是很久不见google面试的更新,以至于大家都怀疑google是否还存在。
本人背景:女生,本科软件工程,硕士国外计算机工程,有软开工作经验1年及其他实习经验,内推。
应聘职位:map quality associate
面试 :2月15日 4轮一对一面试,每轮半小时,每个面试官针对不同角度对你进行提问。
面试官都是SQE队伍的,也就是search quality evaluator团队.
每个人风格也不一样,第一个很亲和;第二个一个问题快问下去,有点像压力测试,对方做销售市场的;第三个是工程师,不是技术面试也就很轻松,对着简历问下去;第四个感觉是个头头,聊天随便问。
1)自我介绍,职业定位,对google产品的了解,竞争对手的相应产品及其优缺点,平时上网浏览什么网页,情景模式(如果你是风投,投资哪家互联网公司;如果过去两年重来,会做什么;如果政府授权你改善交通,你有什么主意等等),你有什么问题。
2)最体现你解决问题,分析问题能力的事件,针对这个事件使劲问。还问你如何做presentation的事宜。最后问你有什么问题。
3)过简历,对google map的改进,和竞争对手的产品比较,然后对搜索了解吗。
4)会编程吗,http访问协议等等,因为工作还是需要编程写点代码的。遇到最大的挫折是什么。
问题都不难,只要自信,对google产品及行业有一定了解,就能表现得不错。相对其他公司某些为了刷人而刷人的笔试,面试等,这还是较简单的。也或许我没看出简单里的难点,所以才失败了。
邮件里写的是,面试对我印象不错,可是仔细看过简历,觉得没有特别匹配。确实,简历只是列举经历成就等,并没针对这个职位的需求做特别描述。
和内推的朋友说起,他说我表现得太想进google了,甚至为此做了个视频,一方面是好事,一方面却给人事扣分机会。人事也怕招错人,所以会比较谨慎。你这么喜欢google还告诉她手上还没有其他offer,那不是绕一圈可能还会回去。她没必要现在就把你招进来。
不管怎么说,错过了这次机会,很遗憾。写此文悼念。
更多关于Google谷歌校招/实习的攻略,请移步:
此话题已被删除
软件开发一直是IT从业者们的心头大爱,几乎每一个就职者都会有一份软件开发的职业规划,你的职业规划写对了吗?在你的职业规划中哪些是需要调整的?哪些又是需要重点注意的呢?快跟随乔布小编来看看软件开发职业规划范文吧。
关键词:职业规划,软件开发职业规划范文
第一步是给自己找一个目标,俗话说不想当将军的士兵不是好兵,同样的道理,作为一个软件开发从业员,不希望自己的软件和名字成名自然也是不可能的,那么你给自己找到目标了吗?这恐怕是你要问自己的第一个问题。
第二步是了解软件开发员需要有的一些特质,接着进一步了解哪些特质是可以在后天培养的,进而写进你的职业规划里。作为一个软件开发员,首先要有学习、分析能力、良好的沟通以及表达能力、熟练的计算机语言的运用,在逐步升职的过程中领导团队的能力和责任心、项目经验、软件开发的具体流程也都是不可缺少的,在职业规划里,不妨培养一个能培养耐心的兴趣爱好如下棋,一方面训练逻辑思维,一方面可以养成沉稳的品质。
第三步是了解具体的逻辑编程,如JAVA SE的基础,知道JDBC、网络编程、I/O流等Linux操作的基础,以及自项目经理一下的项目具体流程(包括代码提交、确认修复BUG等步骤),职业规划里必不可少的就是如何从负责一个项目的一部分到具体负责一个项目的过程。
有人会问职业规划里最重要的是什么?别急,最重要的就是最后一步——找准小方向。软件开发有许许多多的分支岗位,如网络营运工程师、手机软件开发工程师、网站架构工程师等等,你最喜欢的和最胜任的岗位是什么?相信在第一和第二步中你已经有了明确的答案,那就朝着目标前进!
推荐阅读:
嵌入式软件开发面试过程:
先要做职业技能测试,包括英语,c语言,linux等等。 做完题了因为太晚了,就让我回去等消息。第二周电话我进行第二轮面试,2 个面试官当面面我,问的问题很多,linux kernel, 嵌入式linux等等,很杂。
最后让我英语口语聊点什么,口语发挥感觉不好,面试官让我回去等消息,我就知道没戏了。
嵌入式软件开发面试问题:
用英语口语随便聊点什么
来自若邻网
想要了解更多求职信息请点击
面试经历:
先笔试,然后第二天早上起来看到手机短信通知去面试。屁颠屁颠去了,排队,一个大教室,四个面试官,不过是1V1面试的。面试我的是一个40岁左右的中年男子,比较友善。
先寒暄了几句,然后自我介绍,再要求看本科成绩(居然说研究生成绩都很水,汗),重点是操作系统跟java还有数据结构。然后让讲讲自己简历上写的项目和实习经验,问当时做的某个项目中最大的挑战是什么,最大的收获又是什么,,,等等。
后来谈到android,说这次招聘的软件开发都是进去搞android这块的。后面问了我有什么问题,问了下工作地点什么的,然后离开。
面试官提的问题:
自我介绍;
描述下项目经验最大的挑战和最大的收获;
你对android的了解程度。
来源于 职业圈
想了解更多最新、最全的酷派集团相关信息请戳:
我打算说盛大(经营网游的公司)的笔,面试。
自从上次在 AMD 折戟后,我一直在寻觅新的机会。今天在学校,我和盛大又短暂邂逅
了一把,走完了笔试,面试。
盛大不同部门的笔试面试题都不同。我投的是“创新院”,吃青春饭,搞开发那种。
下面开始透题:
不可否认的一点是,盛大“创新院”的笔试题是我见过的,最有趣的一套。
试题分两部分:智力题和技术题。智力题以寻找规律的题为主。比如给你几幅图或者几个数字,问你接下来一个图或数字应该是什么。其中,给数字找规律的题占了智力题五分之二强,而且也比较显难度,我的笔试时间基本都花在了这部分上。智力题这部分妙趣横生,让人做得津津有味。如同 AMD,技术题做起来仍然很随意,那个难度只适合鄙视非专业人员。题目内容分布比较广,数据结构,网络,操作系统等 CS,SE 主干课程基本都有涉及但并不深入。如果你花十五分钟才做完技术题,应该反省学习态度了。
面试官貌似是盛大“创新院”的头儿,一身穿着 IT 味很浓厚。平易近人,总是面带微笑。我们主要聊了我做过的课程项目。面试总体难度也不大。只要平时认真还是可以轻松应付的。
他问:你愿意在技术一线干几年?
想要了解更多的盛大求职信息请点击
转自大街网
近况 兴业银行的成都软件开发中心跟建设银行一样,同样是总行编制。由于人数的限制,成都今年据说只要了 3 个,竞争非常激烈,对技术的要求是比较高,特别是注重机试成绩!成都的开发中心在天府新区天鹅湖旁边,跟省烟 草公司同一栋楼,很是高大上。待遇方面,由于银行业普遍降薪,之前的待遇据说有税后 17w,近期待遇不详。 但是应该不会太差,能够维持在十来万的节奏。
笔试面试情况:
学姐 A 经验:
先是投简历,去的丰台参加上机笔试,上机笔试分为两场连续进行的。一场是编程题,两个题目选作一个,有些人遇到的简单,我遇到的第一个题没看懂(数学概念不知道),第二个二叉树的一系列操作,小题很多,没做完;一场是选择题,里面是操作系统、计算机网络、银行一些基础信息。笔试过了几天就面试,面试了两轮。第一轮的面试是技术群面,设计一个抢购系统。第二轮的面试分上下午,上午是行长面试,半结构化群面。没过的不用 参加下午的面试。下午是科技部 boss 面试,群面,boss 给我们丢了个话题,大家七嘴八舌说一会儿,最后出门 的时候 boss 和每个人都握手了。最后结果等了好久好久,有人通知过了,我就知道自己被默拒了。兴业的面试流程还是挺正规,严肃的。
学长 B 经验:
兴业的笔试面试过程非常之长,注意,是真的很长。分为笔试+机试半天、技术群面+技术单面半天、非技术综合 群面+非技术 boss 综合单面半天,相邻的半天之间往往间隔 1 到两周,所以说真的是很长,一般到发 offer 都要一个月了。
笔试题考察的是计算机综合知识,唯一特殊的题是一些 oracle 数据库的基本指令题。
机试一般就分为两道,选作一到即可。一般第一道是考察数学知识,比如考查笛卡尔积,或者随机概率公式。第 二道一般都是考察比较基础的数据结构题,譬如二叉树排序或者组合数等等。
技术群面往往分为 6 个人,先给了一份材料,大体如下:
某公司拟建设一个在线的电子商务系统,该系统每日请求数大致有 10 万个,其中复杂请求占 20%,简单请求运 行大 2 秒,复杂请求运行大致 4s,该系统每天服务 24h,其中高峰期 4h。双 11 期间该系统出现了严重的性能问题,系统基本无法访问。
(其实我对题目很无语,都说拟建了,还无法访问。。)
1.假设该公司的业务部门没有相关建设商务系统的经验,业务人员对该系统的需求没有明确认识,请提出一种方式协助项目组开发出符合业务人员需求的系统。
2.该系统拟采用 J2EE 的架构实现,请给出建议的系统分层结构和每层采用的技术。
3.业务部门在编写业务需求时,会描述系统的功能需求,但是也有非功能需求,请列举非功能需求及其重要性。
4.请简述一般提升系统性能提升的方案。
5.给一个查询需求,写一个 sql,具体啥我忘了,跟 top 有关,要求写出 sql 和 sql 对应的数据库。
6.请简述该系统设计中要注意的关键事项有哪些。
先花 15 分钟单独写答案,写完交上去;然后去面试,对面 3 面试官。
面试的过程比较简单,就是对着问题大家讨论、整理答案(材料的纸还在手上,面试官围观),可以使用白板,总计 15 分钟,最后花 5 分钟将答案告诉面试官(我觉得不一定是非得某个人,我们组就是哪个问题谁比较精谁上)。
之后面试官对着答案发问,问得很少。
关于群面我觉得还是说自己的观点有用,而不是暗示别人自己怎么怎么牛,像我旁边那位,在阿里等公司实习过, 回答第二个问题的时候动不动就说我在哪实习做什么大型项目的时候是怎么怎么样的(其实我觉得他的设计有点 累赘了,但大家都很赞同,我就不出头了),结果我们组后来只进了两人,就没他。
群面结束马上单面,单面是多个面试官面我一个人。按着之前的顺序来,主要对着网申材料问项目,看个人不同了。我是第 2 个,我前面提的那位牛哥是第 1 个,问了十几分钟吧,我才 5 分钟,虚得很。对了,单面有自我介 绍。
非技术综合面是两场群面,一场非技术综合群面,一场大 boss 面。 非技术综合群面是多对多的形式,一般 6 个人对着三个面试官。都是问一些基本的问题,为什么想回成都?然后会根据的你的笔试机试成绩问你自觉地笔试 机试做的如何啊?成都招人这么少,你觉得你有什么优势么?但其实处处是坑,一般综合面 6 个人里面会被淘汰 一个人。
最后一面大 boss 面,就是大 boss 见见未来的员工了,一般也是 6 个人进去,他一次性见这个组的几位同学。首 先他会拿着你的简历,问问你的家庭的一些基本情况,一般会表扬那些笔试和机试成绩好的同学,这些同学最终 也都能通过。然后大家就会自己选一个话题开始很轻松的聊天,比如互联网金融、甚至于北京如何治理雾霾等等, 大 boss 会参与其中跟大家一起讨论,听听每个人对于这件事的看法,对一些特别感兴趣和发挥出色的学生,大 boss 会在简历上面做一个小记号,大概是个加分项吧。
最后过了差不多两三周,兴业会出结果,兴业做的非常之公正,只能说非常了。每一次面试笔试都会折合成分数, 赋予相关的权重,一般笔试和机试成绩权重&面试成绩权重,技术面试权重&非技术面试权重。而最大的决定因素 就是机试成绩,因为那一道题做出来就是 100 分,跑不通就是 60 以下了,最后根据结果,今年能够去成都的三个名额的同学,机试基本都是满分!因此强烈建议大家一定要做好机试题!好好准备基础的算法知识!!!
信息来源于网络。
想了解更多关于兴业银行的招聘信息,点击下方:
昨天,和班上几位同学一起去参见了网龙的招聘会,去的很早,开始以为还没什么人,到快开始的时候人爆满,连走廊上都站满了人。开始时就是宣讲会,那个副总裁还真挺搞笑的,开场就把一女生问的很尴尬。呵呵,不过老总还是给那个女生留面子了。
但是最终都没有说明具体的薪酬水平。结束后技术类的就去笔试了。报的C++游戏开发职位。开始拿到题目的时候,心中感慨还是考的比较基础,但是基础并不一定说你就能答的很好,指针的题目非常多,由此可以得出结论,基础知识千万不能丢,考的都是编程平常没注意到的地方,下面就简单回顾一下昨天的笔试题吧。
主要考了数组声明、并发、进程和程序的区别、数据库视图、switch分支语句。
1、怎么防止头文件重复引用?为什么?
2、指针和引用的区别?
3、winsock建立连接的步骤?
4、STL是什么?有什么作用?写出你平常使用的三种STL容器并简要说明?
具体题目不能回忆起来,只能说出大概
1、指针的声明、定义的题目,不难。
2、getMemory(char* p)这个题目其实就是林锐博士书上的题目,所以说林锐博士的书真的是现在很多企业笔试面试的材料。一定要啃这本书。
3、各种sizeof取值。呵呵,以前见过,需要弄清楚一系列的概念,全部答对也并不是那么容易。
四、算法题
自己实现数据结构定义和函数。两个有序链表a,b。将他们俩合并为一个链表,合并之后链表还是有序的。这个题目应该是数据结构中最基本的算法了,但是当时脑袋懵了,没有完全搞出来。可惜了。需要苦练内功啊。
五、编程题
将一个面向过程的题目改为面向对象风格的,不难,但是要是设计的很好并非易事。
从以上的题目可以看出,除了一些超大的公司侧重考算法,大部分公司主要还是考C++语言基础,所以基础还需要夯实。等待消息吧,阿门!
来源于 CSDN
想了解更多最新、最全的网龙网络相关信息请戳:
面试了腾讯的安卓职位,职位的工作是给腾讯做一些SDK及其他一些工作。面试得比较仓促,结果比较明显,遂做一些总结,也给以后的自己提一些要求。
1. 第一轮笔试题目:
安卓的基本组件,说说都是做什么用的。Activiy、Intent、IntentFilter、BroadCast、BroadCastReciver。
Activity的生命周期。
安卓定时器的实现,列举出来,越多越好。
代码实现判断手机有无内存卡。
MVC模式在安卓中是如何体现的。
BroadCastReciver有几种注册方式,各有什么优缺点。
第二轮面试
先是简单的自我介绍。
项目经验介绍。
项目中一些知识点提问。
项目中遇到过的难题,是怎么解决的?
现场画出一个项目中网络请求的流程图。
由于这次面试的比较仓促(腾讯也急缺人),在面试过程中,回答的问题总是显得不够条理,叙述不够有力,逻辑性不是很强。据朋友说,腾讯需要的人,是需要你在面试过冲中,显得比较强势,一定要够自信。
所以,在面试过程中,一定需要对Android中的知识点总结,清楚明白地说出它是干什么的。
另外,在开发过程中,一定要对遇到比较麻烦的问题,要做记录,理清楚思路。
还需一些遇到的bug和坑爹的问题,要做记录,写写是如何解决的。
来源于博客园
更多腾讯校招的资讯请猛戳
面试经历:
去了先是笔试,我去迟了点,进去地下层的食堂做笔试题,人特别多,各种职位大约两三百号人。笔试大约半个多小时,基本都写完了。最后三道大题都是编程题,都做了。虽然不完全对,但是伪代码和思路都很清晰了。然后开始了面试,面试过程也很融洽,问的都是些基础的东西。可能项目跟我以前做的东西不太一样吧,所以我项目经验的东西问的很少。
面试官提出的问题
如果你的思路和项目经理的工作计划产生分歧时,你会怎么做?
我说如果经过仔细推敲验证我的思路是正确的并且能促进工作进展的话,我会以请教的口吻向经理提出我的想法,如果经理无论如何都不采纳建议的话,我也会按照他的工作计划来办事,把事情做好才是重要的。
信息来源于网络
想了解更多关于软通动力的招聘信息,请点击:
微软面试,每一轮至少一个小时,一对一PK。几乎不问你项目什么的,因为他们觉得你带来的项目肯定是自己在下面已经准备好了,考不出实力,于是,他们一般是上来就拿题目让你分析。
这一点相对于腾讯面试要蛋疼一些,而且,现场写代码是肯定会有的重要环节。经历了三轮面试,感觉微软的面试很有规律,他只会出两类题目,一类是算法数据结构的题目,一类是工程题目。
总体感觉,尤其是因为微软的面试时间是在腾讯刚刚结束不久,相比之下,每次面完微软都有一种意犹未尽,荡气回肠的感觉,因为在面试官的点播和提示之下,你解决了很多新颖的问题,但是用到的东西却是你曾经在课本上学到的,或者在竞赛比赛实践生活中掌握的知识。
而不像腾讯,展示了两个曾经开发的手机软件,不到二十分钟就把我轰出去了,最后居然还给了我offer。
(先说第二轮吧,因为第一轮面试,一个小时就考了一道工程题,描述起来比较蛋疼)
第二轮面试 第一道题目:
题目描述:现在让你在普通的计算器(位数最多12位)上增加一个功能button,点击这个button之后能进行数字显示模式的切换,即能显示我们汉语对数字表达的习惯。
比如计算器最初显示“零”,你按“1”这个按键之后,屏幕显示的是“一”,继续按”9”这个键,显示的是”十九”,继续按“0”这个键,显示的是“一百九十”… …而且,还要增加两个功能button,“退格键”和“清空键”。
继续按退格键,显示的是“十九”,继续按“清空建”,显示的是“零”。
这道题实际上是一道工程题。
首先第一步也是最容易想到的一步就是先建立映射数组,即开辟一个数组用来保存“零,一,二,三,四,九”,以将单个数字快速转化为汉子。
然后再建立一个映射数组用来保存单位,这里有个大陷阱,等会儿再说,我先按照错着来,这个数组保存从小到大的单位“十,百,千,万,十万,百万,,,亿,十亿,百亿,,,”
做完映射这一步,你可以用一个数试一试,比如“931”转化为中文表达为“九百三十一”的过程为:将一个数从左往右扫描,9映射为“九”正确,该数字在百位,映射为“百”,继续,你最终能得到“九”“百”“三”“十”“一”,拼起来“九百三十一”,哇,正确!
如果仅做到此步,你就向面试官描述了你的答案,那么就很危险了。。。
最明显的一个错误是你没有增加对于“0”的处理。
比如“901”转换为“九百零一”而不是“九百零十一”,所以,有零的位置并不输出“单位”。
比如“1001”转换为“一千零一”而不是“一千零零一”,所以,连续0的地方只输出一个零。
比如“1010”转换为“一千零一十”而不是“一千零一十零”,所以,0在最后的时候不作为输出。
关于零的处理我当时就说了这三步处理,我看他的表情没有任何异常,我就没再考虑是否还有遗漏情形。
然后他问我OK了吗?我半信半疑的点了点头。。。
然后他写了一个数,让我用我刚才描述的算法翻译一下“1230123”。正确表达是“一百二十三 万 零一百二十三”,而我的算法翻译得到结果却是“一百万 二十万 三万 零一百二十三”。。。我勒个去!!!当场SB了。
不过没关系,如果能及时想办法解决掉,反而能衬托出你灵活处理问题的能力。我自己又测试了一个比较大的数之后,发现问题就出现在单位数组的设置上,就是刚才提到的那个“大陷阱”。“十万”“百万”“十亿”“百亿”等等,这些是“复合单位”,跟十,百,千,万,亿,这几个单位不同。
意识到这一点,我给他说了新的算法思路,对于一个数,首先分成几段,从右到左,每四位一段,比如“123 0123”就会被分为两段,第一段“0123”和第二段“123”然后写一个子函数专门处理四位数以下的翻译工作,0123翻译为“零一百二十三”,处于第一段,不用加单位。
然后123会被翻译为一百二十三 ,由于处于第二段,所以加上单位“万”(当然,如果处于第三段,加上单位“亿”)。两段拼起来得到最终答案“一百二十三万零一百二十三”。
说到此,他点了点头,然后让我代码实现,一阵子奋笔疾书,搞定。他检查了一遍,一时没挑出大毛病,就问我,这个问题你解决完整了吗?
我有点疑惑,难道还有神马特殊情形我没想到?
他看我一脸疑惑就在纸上给我画了一个框架图,他说,解决一个问题,要善于将大的问题拆分成数个小的问题,你只解决了一个最关键的子问题,你回想一下我刚才给你提的要求。
原来,我遗漏了解决“输入问题”。汗。。。
他没让我说思路,直接让我写了代码。
注意,如果代码写成:
num = input();
mPrint(num);
那就over了。。。
考虑到平时我们使用的计算器的实际情形,正确输入代码如下:
int num = 0;//当前需要显示的数
int key_//每次按键的键值
while(key_val = input()){//每次得到一个按键
if(key_val == KEY_BACKSPACE){//如果案件为退格键
mPrint(num);//mPrint()函数就是刚才讨论过的那个翻译函数
else if(key_val == KEY_CLEAR){ //如果按键为清除键
mPrint(num);
else if(key_val == KEY_DIGIT){//如果为数字按键 0 -9
mPrint(num);
//...计算器上的其他按键。
写完代码之后,他问我,你觉得加上这个功能会对整个系统带来什么新的问题吗?
像这种问题一般都属于开放性的,想到什么就说什么,别怕错。
我想了一下,说了一个关于“显示”的问题,就是汉字表达一个数,和数字表达一个数的不同之处,比如:11111 和10001 都占五位,而翻译为汉字表达之后,在显示上占得字长相差很多。想到这点主要是因为最近做的一个开发在处理View框架下对字符串排版的时候很是头疼。
截至到此,这道题目就搞定了,题目不难,不涉及到高深技术,但是时间卡的很紧,当时这道题目的交流时间从头到尾进行了二十五分钟左右,包括最初问题描述,到中间的交流,算法描述,外加两段代码的书写。所以,每段代码的书写要控制在五分钟左右。注意,是在纸上写,不是电脑上,很不习惯,一定要提前练习一下。
还有一点要注意,与核心算法无关的代码可以用伪代码实现。比如key_val = input(); input()这个函数,并不需要实现,这么写仅仅代表,计算器内部有一个函数机制能检测你按了那个键,然后返回你一个值就可以了。
第二轮面试 第二道题目
题目描述:给你一个数组,让你返回一个值,这个值在该数组中占得个数,超过数组总的个数的一半以上。比如一个数组有10个数[2, 14 , 2 , 3 , 4 , 2 , 2 , 2 , 2 , 14 ]。这个数组中数字2一共出现6次,那么就返回数字2。为了简化问题,可以认为,对于给定的数组,这个数一定存在。
当然最简单的方法就是,将数组排个序,然后返回数组中间位置那个数,比如上面那个数组排序之后为[2,2,2,2,2,2 ,3,4,14,14],中间的数为2,所以返回2.。
由于排序的最快时间复杂度事O(nlogn)所以,上面解法的算法复杂度是nlogn。
当然,微软既然拿这道题目考你,肯定不是靠你个简单排序。肯定会有O(n)的解决方法的。
算法很简单,既然他让我找的数值在这儿数组里面占得个数超过总数的一半,那么如果我每次同时去掉两个不同的数,那么剩下的数组里面,那个值的个数仍然占到一半以上。
最后剩下的一堆相同的数肯定就是那个值了。
算法跟他说完之后,他说,算法没问题,但是如何实现呢,也就是说,如果通过一次线性扫描,删掉俩俩不同的数呢? 然后让我把实现代码写出来。
在实现上用到一个“虚拟栈”的技巧,这个方法很典型,幸亏过去接触过,否则在那么短的时间内很难写出高效的实现代码。
“虚拟栈”就是说,不需要真正开辟空间,我只是申请两个变量,一个记录栈顶的数值,一个记录此时栈里面当前元素个数。
这样,为了解决上面的问题,用“栈”的那套语言来描述就是:
从头到尾扫描原数组,每取出一个数x,进行如下操作。
首先如果栈为空,那么就把当前值x
如果栈不为空,就拿当前值x
跟栈顶元素top 比较:
如果x 等于 top ,那么把x压入栈;
如果x不等于top,那么把top弹出栈。
数组扫描完毕之后,栈顶元素值top即为需要找到的数。时间复杂度O(n)。
当然你会注意到,在栈动态变化的过程中,你会发现,栈中的元素如果数量大于1,必然是一堆相同的元素。所以根本没有必要开辟栈空间,这就用到刚才提到的“虚拟栈”,只需要记录栈顶元素值,和栈中元素的数量即可。可以将“运行时空间复杂度“由O(n)降到O(1)。
代码我就不贴了,总觉得在人人上贴代码怪怪的。。。
第二轮面试 第三道题目:
题目描述:这道题目挺有意思,他问我你知道”外部排序”吗? 我一脸茫然,我说,我只知道快排,归并排序,希尔排序等等。。。他打断我,你说的都是”内部排序”。他说到这里,我瞬间想起来,我们那个英文版本的数据结构书,好像在讲内部排序的时候的前一章节有提过外部排序。
不过由于不是考试内容,所以我当时就没看。。。他说,没事,不知道没关系,我给你描述一个问题场景,你就把他当成一个新问题来处理就行了(微软面试官好贴心,感动)。
他说,现在我要进行排序,不过需要排序的数据很大,有1000G那么大,但是我的机器内存只有2G大小,所以每次只能把2G的数据从文件中传入内存,然后用一个“内部排序“算法在内存排好序后,再将这有序数据,载入一个2G大小的文件。然后再载入第二个2G数据。。。
循环500遍之后,我现在得到500个文件,每个文件2G,文件内部是有序的,然后我再比较这500个文件的第一个数,最小的肯定就是这1000G数据的最小的。那么之后的过程你肯能想到了,就是不断将这500个2G 数据进行一个归并,最终就能得到这1000G的有序数据文件了。
举个例子,比如我要排序10个数,但是我的内存一次只能装下5个数,所以最初的10个数我只能放到文件里面(文件时外存,只要硬盘或磁盘够大,想多大就多大)。内部排序肯定是得需要将数据载入内存中才可以进行的。
这10个数是[ 2 ,3,1,7,9 ,6, 8,4 ,5 ,0 ]。
第一次载入前五个数2,3,1,7,9.
排好序后是:1,2,3,7,9
然后导入一个只存五个数的文件中。
第二次载入后五个数6,8,4,5,0
排好序后是:0,4,5,6,8,然后倒入一个只存五个数的文件中。
之后在归并两个有序数列
第一个有序子数列的头位1,第二个为0,因为0然后在进行第二次比较,1和4进行比较。。。
重复进行最终得到一个有序数列的文件,里面存着,0,1,2,3,,,7,8,9
问题是:在这个过程中,你能想到哪些优化?
解答:想了大概一分钟,除了增设一个缓冲buffer,加速从文件到内存的转储之外,我脑子里面一片空空。。。而且我想到的那个缓冲buffer所得到的回复是“假设这个优化系统已经帮你优化了” 。。。无语。。。
他看我眉头紧锁,然后给我做了一个提示:假设我现在把文件中的2G数据载入内存这个过程定义为”L”,把内存中的排序过程定义为”S” ,把排序好的 2G数据再转储到另一个文件这个过程定义为”T”…
他还没说完,瞬间反应过来了!“用流水线并行实现“,然后我把流水线那个图画了出来,就是在计算机组成原理那本书中经常出现的“流水线图”。图画好后,他点点头,我也长嘘一口气。。。
然后他问我,用流水线技术之后为什么会加速整个过程。
当然这个问题就很容易了,过去得把一组2G数据的三个过程全部处理完之后,才能进行下一个2G数据的处理,现在就可以三个过程并行着进行了。当时我也忘了,加速比怎么计算了,所以就没提这个东西。。。
他接着问,做了这个并行处理之后,会出现什么问题?
想了一下,我说,在“S”这个过程,也就是内部排序的这个环节最好不要用“快速排序”,因为快速排序是不稳定的排序,所以在流水线那个图中会出现不均匀的时间块,影响整体性能。
他想了一下,点点头。问,还有吗?给你个提示吧,你想想加了这个优化之后,某个资源会不会出问题?
我想了想,“资源”,计算机的资源没几样啊,CPU,内存。。。再一次,瞬间恍然大明白,是内存出的问题,因为,如果并行进行的话,打个比方,比如现在同时处理的过程是,第一个2G数据的“T”阶段(因为第一个2G数据,比较早的进入流水线,所以之前的两个阶段已经处理完毕),第二个2G数据的“S”阶段,第三个2G数据的“L”阶段,那么这三个阶段是都需要把数据放到内存中的,所以一共得需要6G内存,但是目前计算机的实际内存只有2G啊!!!
解决方法很简单,将内存平均分为三份,分别用于处理三个阶段的数据。
这样带来的影响是,现在一次就不能处理2G数据了,只能处理2/3G的数据,流水线会加长。
他看这块处理的差不多了,就继续提示,你看看在最后的归并上有什么优化?
最后的归并就是不断在一组有序数列中找最小值,还用刚才那个例子,最后不是得到500个2G有序数列吗,但是扫描每个文件头,找最小值,最差情形要比较500次,平均复杂度是O(n),n为最后得到的有序数组的个数,此例子为500。
他既然问有没有什么优化?那么必然是存在logn的算法了。一提logn和最小值,那没的说,必须是“堆”啊!!!
然后我给他说了一下具体实现细节
就是维护一个大小为n的“最小堆”,每次返回堆顶元素,就为当前所有文件头数值的那个最小值。然后根据刚才弹出的那个最小值是属于哪个文件的,然后再将那个文件此时的头文件所指向的数,插入到最小堆中,文件指针自动后移。插入过程为logn复杂度,但是每次返回最小值的复杂度为O(1),运行时空间复杂度为O(n)。 OK,搞定。
由于已经一个小时了,这道题目 他就没有让我写代码。幸运,堆那个上移,下移操作好长时间没有写过了。。。
第二面结束。
光写了第二轮面试的三道题目就这么长了。。。悲剧,第一轮的一道题目,和第三轮的两道题以后抽空再写吧。。
(本文由小编整理发布,如有侵权请联系我们。)
更多微软求职信息请戳:
1、同步电路和异步电路的区别是什么?
异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和持时间,待下面介绍。
同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。比如D触发器,当上升延到来时,寄存器把D端的电平传到Q输出端。
在同步电路设计中一般采用D触发器,异步电路设计中一般采用Latch。
2、什么是同步逻辑和异步逻辑?
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。
电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。
由于异步电路具有下列优点--无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性--因此近年来对异步电路研究增加快速,论文发表数以倍增,而Intel Pentium 4处理器设计,也开始采用异步电路设计。
异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。
这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
3、什么是&线与&逻辑,要实现它,在硬件特性上有什么具体要求?
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现(漏极或者集电极开路),由于不用oc门可能使灌电流过大,而烧坏逻辑门,同时在输出端口应加一个上拉电阻。(线或则是下拉电阻)
4、什么是Setup 和Holdup时间?
5、setup和holdup时间,区别.
6、解释setup time和hold time的定义和在时钟信号延迟时的变化。
7、解释setup和hold time violation,画图说明,并说明解决办法。(威盛VIA
上海笔试试题)
时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除。
9、什么是竞争与冒险现象?怎样判断?如何消除?
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的(冗余)消去项,但是不能避免功能冒险,二是在芯片外部加电容。三是增加选通电路
在组合逻辑中,由于多少输入信号变化先后不同、信号传输的路径不同,或是各种器件延迟时间不同(这种现象称为竞争)都有可能造成输出波形产生不应有的尖脉冲(俗称毛刺),这种现象成为冒险。
10、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
常用逻辑电平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、
PECL(Pseudo/Positive Emitter Coupled Logic)、
LVDS(Low Voltage Differential Signaling)、
GTL(Gunning Transceiver Logic)、
BTL(Backplane Transceiver Logic)、
ETL(enhanced transceiver logic)、
GTLP(Gunning Transceiver Logic Plus);
RS232、RS422、RS485(12V,5V,3.3V);
TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,
而CMOS则是有在12V的有在5V的。
CMOS输出接到TTL是可以直接互连。
TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。
cmos的高低电平分别为:Vih&=0.7VDD,Vil&=0.3VDD;Voh&=0.9VDD,Vol&=0.1VDD.
ttl的为:Vih&=2.0v,Vil&=0.8v;Voh&=2.4v,Vol&=0.4v.
用cmos可直接驱动加上拉电阻后,ttl可驱动cmos.
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的搞电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
//OC门电路必须加上拉电阻,以提高输出的搞电平值。
OC门电路要输出“1”时才需要加上拉电阻不加根本就没有高电平
在有时我们用OC门作驱动(例如控制一个LED)灌电流工作时就可以不加上拉电阻
OC门可以实现“线与”运算
OC门就是 集电极开路输出
总之加上拉电阻能够提高驱动能力。
什么是OC门?
OC门,又称集电极开路(漏极开路)与非门门电路,Open Collector(Open Drain)。为什么引入OC门? 实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态电平)用同一条导线输送出去。因此,需要一种新的与非门电路--OC门来实现“线与逻辑”。
OC门主要用于3个方面:
1、实现与或非逻辑,用做电平转换,用做驱动器。由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCC。OC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则,从降低功耗及芯片的灌电流能力考虑应当足够大;从确保足够的驱动电流考虑应当足够小。
2、线与逻辑,即两个输出端(包括两个以上)直接互连就可以实现“AND”的逻辑功能。在总线传输等实际应用中需要多个门的输出端并联连接使用,而一般TTL门输出端并不能直接并接使用,否则这些门的输出管之间由于低阻抗形成很大的短路电流(灌电流),而烧坏器件。在硬件上,可用OC门或三态门(ST门)来实现。 用OC门实现线与,应同时在输出端口应加一个上拉电阻。
3、 三态门(ST门)主要用在应用于多个门输出共享数据总线,为避免多个门输出同时占用数据总线,这些门的使能信号(EN)中只允许有一个为有效电平(如高电平),由于三态门的输出是推拉式的低阻输出,且不需接上拉(负载)电阻,所以开关速度比OC门快,常用三态门作为输出缓冲器。
来自百度文库
TCL2016校招开始啦!更多TCL校招/实习的攻略,请移步:
昨天拿到TPlink的offer,今天(日周日)来晒下。
一,投简历。9月份网上海投的时候投过tplink,但是没想过后面会怎么样。只是先投了再说的感觉,也没有想过去深圳工作会怎么样(本人在上海上了6年多,本科加硕士)。
二,周三晚上在地铁上接到电话问我能不能周四下午去闵行面试,当时心情不太好(刚参加了iqiyi的笔试),而且周四本来就有联想的见面会以及百姓网的笔试,已经很纠结了。但还是答应了。
三,经过再三纠结我决定去闵行,先去联想的见面会看一下如果想听就放弃tplink,如果不想就去tplink。结果果然去了联想的见面会呆了30分钟就不想听了,我果然还是不喜欢听宣讲会什么的。就跑出来了,tplink约得是两点多。当时很不想去面试,因为想到可能会被虐,可能会要去深圳工作(不太情愿)。
结果就在校园里溜达,又收到了翼支付的宣讲会的短信,就路过学生活动中心的时候去听一下吧。没想到刚坐下不到10分钟,这宣讲就在抽奖中结束了(当然没中,这辈子最大的抽奖就是再来一瓶),然后随便投了一份简历。就出来,但是还是不想去tplink面试,但是现在回去又太早!然后在媳妇儿的强烈建议下还是去决定去面试。
四,一面。在学术活动中心七拐八绕的好不容易找到了面试的房间,看了一眼房间里两个人,都面窗,一个站着一个坐在床上。纠结半天还是敲门进去了。然后自报家门,然后被安排在下一个面试。一会儿被安排说:去三楼某房间面试,然后拿上简历就上了。
正式开始:先是自我介绍,再说的时候观察面试官,感觉他很急的样子,意思好像是让我快点儿说完,然后我就很快的说完了。
然后开始提问,主要问了我实习的时候做了什么,blabla…然后问了一个内存泄露的问题,怎么检查内存泄露,什么会导致内存泄露,堆栈的区别,野指针是什么,怎么产生,delete为什么有时候会造成内存泄露;我觉得我说了一些但肯定不全对,如果这道题10分,我给自己打5分;
然后又问tcp和udp,tcp滑动窗口是干什么用的,不会,给自己打1分;又问香农定理是做什么的,给自己打0分。然后问我有什么问题,然后说去下面等一下。
五,二面。一面二面期间看见点评的宣讲会,作为一面签到党,果断去签了个名,然后背上书包准备去二面。然后被告知去某某地方二面。二面面试官竟然没有拿到我的简历!打电话让他同事送过来竟然一直没有送过来!
好吧我也没有多余的简历,只能再来一遍自我介绍。然后开始扯了一点别的。问了new/delete,malloc/free的区别,以及内存的一些东西,还问了啥,好像没有什么有难度的了。然后又聊天,问我还有什么问题,我就问是在深圳上班吗,是,没了。
我说没问题了。他说好,今天或明天人力可能会跟你打电话谈三房,然后我就撤了。在拖鞋门买了个饼,凉的,就回了。
六,Hr面。周五晚上5点接到hr的电话,说去闵行领取录用通知书,并谈谈。第二天下午匆匆跑到闵行。到了地方直接来到酒店房间。自报家门,开始谈,hrgg很和善。详细的介绍了工资体系等。然后提问,然后我就拿着录用通知纠结着回来的,要不要去深圳离开这个呆了6年多的地方。
(本文由小编整理发布,如有侵权请联系我们。)
更多TP-LINK求职信息请戳:
经过上海爱立信的笔试面试,至今结局未定;老师告诉说下周才有结果,有点忐忑不安。先是一个宣传活动在8点到10点半,笔试是在10点半到12点。
笔试的内容绝大部分是比较基础的语法.第一题是改错,C++里面的构造函数是不允许有返回类型的,非常基础。后面的还有几题是关于指针,指针参数传递,值传递与引用传递,指针常量,拷贝构造函数,C++ 里面小题就这几个方面。
JAVA中考了一个upcasting,一个线程的同步关键字。XML中考了schema和DTD的作用,XML的作用。 CORBA方面,没有学习过,一道题没做。最后一部分是四道advanced题,第一题改错会做,错在函数的参数传递,最后一题举例来 implementation一个MVC,就说了一个GUI的desktop的application。
其它两道题一是不太会做,二是卷面空间不够写不下了,也没有想很认真的写,只是把关键点写了下:内部都是虚函数,一定要给出无参构造函数,拷贝构造函数给出….
十一号中午被通知还有一场加试,有差不多20个人参加第二次加试,其余N多人直接参加面试,仿佛是随机抽出20个人参加加试的,我们应聘的部门和他们是不同的。
加试的内容非常郁闷,给你一堆关于爱立信平台的reference,然后做三道题,全是类似汇编的东东,结果实在是不怎么样,最后一道题还没有做,后来面试的时候补做了一半,汗L..紧接着就是面试。
第一个面对的是一个技术人员。走到她前面叫声老师,把提前预备的简历递给她,我只预备了英文简历,因为我的中英简历是纯粹的翻译关系,所以觉得再交份中文没有必要。等她说你坐下吧,我才坐下。刚开始的时候我还是比较慌的,她说你介绍一下自己吧,我脱口而出: 用中文还是英文?
当时没有经验,其实不该问这个问题,只要面试官没有让你用英文介绍,你就老老实实地当作是中文吧,果然,当我用中文介绍完自己的时候,她又说你用英文再介绍一下自己的爱好。汗,随便说了我喜欢编程,喜欢看书,喜欢打篮球…
然后她又让我说了些我过去的项目经验,天哪,全说的是JAVA,不知道她喜不喜欢听我说的,毕竟那个部门好像用不着JAVA这种语言的,甚至高级语言都不用。没有法子呀,我只了解这些,又不能谈汇编L。
接下来的一个话题另我始料不及:如果我们现在只招一个人去实习,你觉得你有能力去吗?还是觉得有你的其它同学更适合这个岗位?超强的问题呵,呵呵,我不知道她有没有问其它的人,也不知道其它的人遇到这样的题目会给出怎样的答案。
如果我说我有能力去吧,是不是很冠冕堂皇,给人一种自大的感觉,这人不知道天高地厚,如果我说我觉得自己不能去吧,又会给她一种没有信心的错觉,汗呵….不过最后还是实话实说了,我说在和我相处的朋友中,如果爱立信只招一个实习生的话,我觉得他比我更适合去,因为我很佩服他…….
我说了一下原因,在她问我这个人名字的时候,我告诉他,今天他没有来面试。哈哈….比较完美的回答呵,而且没有做作,是我真正心里想的答案。个人感觉还是比较顺利的。
接下来的话题就比较轻松了,比如说你的理想,你的人生规划,你和周围人的相处呵,这些都不是重点.然后有两点:你能不能加班,你能不能经常出差….我毫不犹豫地回答了no Problem。
最后她问我有没有问题要问,当然有啦:为什么我们这些人又被叫过来加试?公司有培训吗?就这样了,后来又把那试卷做了一遍,汗阿,最后一道题PART B还是没做出来,天哪!也许因此要GG了。
第二轮面试,是宣讲会时候得那个人力资源部经理(呵呵,不确定是不是经理)。本来英语自我介绍想得好好的,结果被他看得太紧张,语无伦次啊(印象分狂减,减,减…..),汗,离爱立信越来越远了。
然后问了几个问题:你对responsibility 的理解,你对teamwork的看法,你的人生目标….唉,回答得完美呵,我觉得当时自己反应特别快,所有问题都回答的很有信心,并且都给举出写例子来证明自己对那些概念的理解!
等待结果中….表打击我,我为此还看了一天C++的…….多少年没有看了….
(原文来自网络)
更多爱立信求职攻略,大力猛戳:
第一次去面试,简单填了下一个介绍的表格,然后来了个据说项目经理的人,一对一面试。提了两个问题,我答对了一个。
然后说不错,等通知。过了一天人事发了一个人格测试题目,做完了。今天刚接到他们电话,说去复试。
单例模式与静态变量的关系?
本文整理自金针菇企评网,若有版权问题,请联系我们。
更多校招资讯请戳:
1、USB线有几芯?分别起什么作用?传输速度是多少?能传输多远距离?
2、NAND FLASH是什么?与NOR FLASH相比它有什么特点?
3、画出或门电路的真值表。如图:
4.什么是Setup TIME(建立时间)和HOLD TIME(保持时间)?
1、FPGA和ASIC的概念,他们的区别。
答:FPGA是可编程ASIC。ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。
2、建立时间(setup time)与保持时间(hold time)意思?
答:建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果hold time不够,数据同样不能被打入触发器。 如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability(亚稳态)的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
3、什么是竞争与冒险现象?怎样判断?如何消除?
答:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
4、同步电路和异步电路的区别是什么?
答:同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。
5、什么是NMOS、PMOS、CMOS?什么是增强型、耗尽型?什么是PNP、NPN?他们有什么差别?
答:MOS场效应管即金属-氧化物-半导体型场效应管,英文缩写为MOSFET(Metal-Oxide-Semiconductor Field-Effect-Transistor),属于绝缘栅型。
其主要特点是在金属栅极与沟道之间有一层二氧化硅绝缘层,因此具有很高的输入电阻(最高可达1015Ω)。它也分N沟道管和P沟道管,符号如图1所示。通常是将衬底(基板)与源极S接在一起。根据导电方式的不同,MOSFET又分增强型、耗尽型。所谓增强型是指:当VGS=0时管子是呈截止状态,加上正确的VGS后,多数载流子被吸引到栅极,从而“增强”了该区域的载流子,形成导电沟道。
耗尽型则是指,当VGS=0时即形成沟道,加上正确的VGS时,能使多数载流子流出沟道,因而“耗尽”了载流子,使管子转向截止。
PNP与NPN的区别在表面上是以PN结的方向来定义的,实际上是以三极管的结构材料来区分的。PNP是两边的棒料是镓,中间的是硅。镓是第三主族的元素,其核外为三个电子,硅是第四主族的元素,其核外有四个电子,这样在两个PN的方向上的顺序是P-N-N的关系;相反NPN是两边的材料是硅,中间的是镓,形成的PN结顺序为N-P-N的关系。
顺便说明:P的意思是在PN结上缺少电子,以空穴为主导电的材料,也叫P型材料;N的意思是在PN结上有多余的电子,以电子为主导电的材料,也叫N型材料。
来自百度文库
TCL2016校招开始啦!更多TCL校招/实习的攻略,请移步:
11、如何解决亚稳态。
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
解决方法:
1降低系统时钟频率
2用反应更快的FF
3引入同步机制,防止亚稳态传播
4改善时钟质量,用边沿变化快速的时钟信号
关键是器件使用比较好的工艺和时钟周期的裕量要大。亚稳态寄存用d只是一个办法,有时候通过not,buf等都能达到信号过滤的效果
12、IC设计中同步复位与异步复位的区别。
同步复位在时钟沿采复位信号,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。
13、MOORE 与 MEELEY状态机的特征。
Moore状态机的输出仅与当前状态值有关,且只在时钟边沿到来时才会有状态变化. Mealy状态机的输出不仅与当前状态值有关,而且与当前输入值有关,这
14、多时域设计中,如何处理信号跨时域。
不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用FIFO,双口RAM,握手信号等。
跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步器同步后,才能进入时钟域2。这个同步器就是两级d触发器,其时钟为时钟域2的时钟。
这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。
比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。
如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。
我们可以在跨越Clock Domain时加上一个低电平使能的Lockup Latch以确保Timing能正确无误。
1、基尔霍夫定理的内容是什么?
基尔霍夫定律包括电流定律和电压定律
电流定律:在集总电路中,任何时刻,对任一节点,所有流出节点的支路电流的代数和恒等于零。
电压定律:在集总电路中,任何时刻,沿任一回路,所有支路电压的代数和恒等于零。
2、描述反馈电路的概念,列举他们的应用。
反馈,就是在电子系统中,把输出回路中的电量输入到输入回路中去。
反馈的类型有:电压串联负反馈、电流串联负反馈、电压并联负反馈、电流并联负反馈。
负反馈的优点:降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。
电压负反馈的特点:电路的输出电压趋向于维持恒定。
电流负反馈的特点:电路的输出电流趋向于维持恒定。
3、有源滤波器和无源滤波器的区别
无源滤波器:这种电路主要有无源元件R、L和C组成
有源滤波器:集成运放和R、C组成,具有不用电感、体积小、重量轻等优点。
集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限,所以目前的有源滤波电路的工作频
1:用mos管搭出一个二输入与非门。
2:集成电路前段设计流程,写出相关的工具。
3:名词IRQ,BIOS,USB,VHDL,SDR
4:unix 命令cp -r, rm,uname
5:用波形表示D触发器的功能
6:写异步D触发器的verilog module
7:What is PC Chipset?
8:用传输门和倒向器搭一个边沿触发器
9:画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。
来自百度文库
TCL2016校招开始啦!更多TCL校招/实习的攻略,请移步:
三月份开学后看到微软招暑期实习,一开始本来抱着试试看的心态投了个微软的暑期软件开发实习,四月初参加完微软笔试,运气好竟然过了,通知今天面试,突击了两天基础知识今天吊儿郎当就过去。
面试从早上8点到下午4点半,我们是最后一波,进到大厅大家都一声不吭,有的闭目养神,还有的翻翻书,做最后的准备,还有我这样的酱油男没见过世面,把一楼大厅转个遍,大厅左右两边两个洗手间都进去了一趟,摸摸这,看看那。
签完到就进到会议室里分组检查证件,我们组hr美眉特别漂亮! 面试被虐了最后忘了求合影了。hr很辛苦的,从早忙到晚,晚上我们最后一波完了后,还有处理面试官的反馈,决定offer发给谁
hr姐姐讲一下今天的流程,还解释了一下微软sde、sdt实际上都是开发,不是说测试就是传统的测试,而是开发测试软件,还说肚子饿了,面试中间有很多吃的随便拿~ 验完证件就带着我们来到了3楼食堂开始面试。
一面考官人很好,一开始问了些基础问题,答得还ok,但后面三个问题把我直接虐掉,各种递归神题,毫无思路,那种当着考官,脑子一片空白,支支吾吾什么都说不出来的感觉真是太难受。最后剩10分钟时,面试官笑了笑:来我给你讲讲吧!
然后就是二面,是一个mm,上来我就blabla说,我小本啊!不是科班的,刚才一面被虐了,但求轻虐!
同样的三道题,没有要求写完整程序,要写出框架及说清算法,二面的时候觉得比一面好一点,至少都还有思路,有卡住的时候请教考官,她也会给一点提示,最后还和mm聊了会儿天,问她在微软累不累什么的,她说还好了,没有度娘累,又问本科的正式员工多吗?她觉得不多,还说微软内部还是比较open的,觉得哪个部门有意思,可以申请调过去。然后时间就到了。
面试出来觉得希望不大,一面太屎了主要,但这次经历很宝贵,亲自经历过确实深有体会,微软员工的严谨和自信也让我深有感触。 毕竟还是太年轻了,沉下心来,把缺的知识补上,少年还需努力~
(本文由小编整理发布,如有侵权请联系我们。)
更多微软求职信息请戳:
哈曼汽车电子系统(苏州)有限公司
汽车功放组-嵌入式软件开发实习生
如果你满足以下条件,请联系 Justin. :
2. 嵌入式软件开发基础,
3. 熟悉uCOSII
4. 了解汽车网络
5. 深刻理解C语言和数据结构
6. 了解软件开发流程
公司网址:
Responsibilities:
Assist software engineer’s development such as release process.
Tests software designs and code at the unit and system level to ensure that
all requirements are met and the highest software quality is achieved.
Participate in internal design reviews.
Read schematics and debug analog and digital hardware.
Use oscilloscope and logic analyzer for trouble shooting.
Attend code review.
Required experience:
1. Solid embedded system development experience. Embedded systems debug
experience.
2. Familiar with HW instrument like oscilloscope. Function generators, etc,
and embedded debug tool like emulators, debuggers etc.
3. Familiar with one of embedded operating system, such as uCOS-II.
4. Familiar with CAN protocol is a plus.
Headquartered in Stamford, Connecticut, HARMAN (NYSE:HAR) designs,
manufactures and markets premier audio, visual, infotainment and integrated
control solutions for the automotive, consumer and professional markets. With
leading brands including AKG(R), Harman Kardon(R), Infinity(R), JBL(R), Lexicon(R)
and Mark Levinson (R), the Company is admired by audiophiles, musicians and the
entertainment venues where they perform. More than 25 million automobiles on
the road today are equipped with HARMAN audio and infotainment systems. More
than 25 million automobiles on the road today are equipped with HARMAN audio
and infotainment systems. HARMAN has a workforce of approximately 16,000
people across the Americas, Europe, and Asia and reported sales of $5.3
billion for the last twelve months ended June 30, 2014. HARMAN is an Equal
Opportunity, Affirmative Action employer. Minorities, women, veterans and
individuals with disabilities are encouraged to apply. HARMAN offers a great
work environment, challenging career opportunities, professional training and
competitive compensation.
查看更多恒生电子求职信息请点击
转自phperz
第1张/共6张
今天去惠普去试试霸王面。居然成功了。庆祝一下。投的是大连的软件开发,本人要到大连去,所以对此非常重视。
北京地区笔试时大约也就时25人吧。也不知道大家为什么都没投,可能没有北京研发的关系吧。考了一堆java。第一个是冒泡的c算法。还有一个好像是把单链表做成双向链表。然后是java中类的描述符都有哪些。还有c++中的重载和覆盖的概念和举例。
剩下连续六七个都是java的程序让说出结果的。主要考的是继承,重载,还有main函数的参数。后来是一个数据库查询的题。还有黑盒白盒测试的题,又问单元测试属于什么测试。还有操作系统的}

我要回帖

更多关于 序列二次规划问题求解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信