百度实习一面回顾
2011-06-29 15:44
309 查看
原本高高兴兴的期待着在hr.baidu.com上面看着好点的结果,发现一面直接被刷。~~~~(>_<)~~~~
吸取经验吧。面试的是商务搜索部_机器学习算法研发实习工程师.
-运用大规模机器学习算法,提高在线广告投放的精准度,从而优化在线广告的相关性、变现能力与用户体验,达到技术和商业的完美结合
-具有良好的编程开发和算法设计能力
-具有良好的分析问题和解决问题的能力,对解决具有挑战性问题充满激情
-具有机器学习方面的理论知识, 热衷于机器学习算法研究或将其应用到实际中,有相关项目经验者优先
首先问项目的事情,第一个介绍的是介绍自己的项目,我第一个介绍的是Book Structure Extract。 感觉一开是讲这个是一个败笔。将排序学习估计更加的贴切吧。
之后面试官问:SVM 与神经网络的区别时,感觉回答的不是很好,下面总结一下应该怎么回答:
神经网络:
1。有局部最小点
2。泛化能力差 empirical risk minimization principle,经验最小化原则。
3。隐含层节点数确定比较困难,没有严格理论依据
svm
1。没有局部最小点
2。泛化能力好于神经网络 structural risk minimization principle,结构最小化原则。
3。无需指定kernel函数数目
SVM针对小样本数据学习具有很强的优势
其利用支持向量来进行线性或非线性规划
具有全局收敛优势
而ANN的训练在数据样本长度不够的情况下会产生过学习的情况,即收敛后误差很小但与实际求解模型相差很远
而且ANN的目标函数一般是非凸性的
这就使得其有多个极值点
要收敛到全局最优解非常困难
另外利用ANN需要对网络初始化和网络拓扑结构进行合理设计
这一设计基本上没有什么理论依据
对于使用者的经验依赖很大
之后就问了一下TCP的交互是一个怎么样的过程,唉,我还是太懒了,上午的时候都被问了这个问题,也不好好的看一下。
TCP连接建立
TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立;
TCP 与 UDP对比
TCP(传输控制协议)和UDP(拥护数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。
TCP包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。在这个握手阶段后,我们就可以 认为在这俩个进程间存在一个TCP连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉TCP拆除这个连接。可靠的传输服务为了保障彼此通信能无 差错地顺序传递所有数据。
当其中任何一个应用程序把一个字节流传如套接字时,它可以指望TCP把同样的字节流传递到对方的套接字,中间不回丢失和重传。TCP是因特网的一种公益服 务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。TCP拥塞机制在网络变得拥塞时阻止发送进程。确切地说,TCP拥塞控制试图把 每个TCP连接限定在它所公平共享的网络带宽上。对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象 一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。
说了这么多,TCP能提供的好的服务,再看一下其缺点吧,首先,TCP不保证最小传输率,通俗点说,TCP不允许发送进程以想要的速率发送数据,受到 TCP拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。其次,TCP不提供任何延时保障,具体点说,发送进程把数据传入自己的TCP套接字 后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了 ,花几秒或则几分钟都不一定。
UDP是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。UDP是无连接的,因此两个进程彼此通信之前没有握手过程。UDP提供不可靠的数据 传输服务,也就是说当一个进程往自己套接字发送一个消息时,UDP不能保障这个消息回最终到达接受套接字。另外,就确实到达接收套节字的消息而言,他们的 到达顺序也可能不是有序的。
UDP不含拥塞控制机制,因此发送进程能够以任意速率往UDP套接字发送数据,尽管不能保证所有数据都到达接收套接字,但是会有相当比列的数据到达。实时应用程序的开发人员往往选择在UDP上运行他们的应用。与TCP类似,UDP也不提供任何延迟保证。
两个链表相交,要求找出第一个相交的节点
《编程之美》里面有一篇是讲如何判断两链表是否相交,读后觉得原文太过啰嗦。于是,笔者总结了一下,此类问题可以扩展为两大类,分别是:
1、单链表与环问题http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
2、单链表相交与环问题(本文)
给定两单链表A、B,只给出两头指针。请问:
1、如何判断两单链表(无环)是否相交?
有两种可取的办法:
(1)人为构环,将链表A的尾节点指向链表B,再判断是否构环成功?从链表B的头指针往下遍历,如果能够回到B,则说明相交
(2)判断两链表最后一个节点是否相同,如果相交,则尾节点肯定是同一节点
2、如何判断两单链表(不知是否有环)相交?
先判断是否有环,判断是否有环可以使用追逐办法,设置两个指针,一个走一步,一个走两步,如果能相遇则说明存在环
(1)两个都没环:回到问题1
(2)一个有环,一个没环:不用判断了,肯定两链表不相交
(3)两个都有环:判断链表A的碰撞点是否出现在链表B的环中,如果在,则相交。(相交时,环必定是两链表共有的)
3、如何寻找两相交链表(不知是否有环)的第一个相交节点?
同样,使用追逐办法先判断是否存在环,分情况讨论
(1)无环:人为构环,将链表A的尾节点指向链表B,则构成一个带环的单链表。这个问题就转换成寻找带环单链表的环入口节点。
解法参考:http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
(2)有环:计算出两链表的长度lA、lB,(环的长度和环到入口点长度之和就是链表长度)
计算带环链表长度,可参考http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
如果lA>lB,则链表A指针先走lA-lB,然后链表B指针开始走,两者相遇的点就是相交点
如果lB>lA,则链表B指针先走lB-lA,然后链表A指针开始走,两者相遇的点就是相交点
最后就是硬伤了,没有在linux上面进行过编程。。。。。
唉,重新启程吧。
TCP连接关闭:发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间;
TCP重置:TCP允许在传输的过程中突然中断连接,这称为TCP重置;
TCP数据排序和确认:TCP是一种可靠传输的协议,它在传输的过程中使用序列号和确认号来跟踪数据的接收情况;
TCP重传:在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方,这称为TCP重传;
TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收数据的同时发送自己的确认信息给对方。
TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。
吸取经验吧。面试的是商务搜索部_机器学习算法研发实习工程师.
-运用大规模机器学习算法,提高在线广告投放的精准度,从而优化在线广告的相关性、变现能力与用户体验,达到技术和商业的完美结合
职位要求:
-计算机及计算机相关专业本科以上学历-具有良好的编程开发和算法设计能力
-具有良好的分析问题和解决问题的能力,对解决具有挑战性问题充满激情
-具有机器学习方面的理论知识, 热衷于机器学习算法研究或将其应用到实际中,有相关项目经验者优先
首先问项目的事情,第一个介绍的是介绍自己的项目,我第一个介绍的是Book Structure Extract。 感觉一开是讲这个是一个败笔。将排序学习估计更加的贴切吧。
之后面试官问:SVM 与神经网络的区别时,感觉回答的不是很好,下面总结一下应该怎么回答:
神经网络:
1。有局部最小点
2。泛化能力差 empirical risk minimization principle,经验最小化原则。
3。隐含层节点数确定比较困难,没有严格理论依据
svm
1。没有局部最小点
2。泛化能力好于神经网络 structural risk minimization principle,结构最小化原则。
3。无需指定kernel函数数目
SVM针对小样本数据学习具有很强的优势
其利用支持向量来进行线性或非线性规划
具有全局收敛优势
而ANN的训练在数据样本长度不够的情况下会产生过学习的情况,即收敛后误差很小但与实际求解模型相差很远
而且ANN的目标函数一般是非凸性的
这就使得其有多个极值点
要收敛到全局最优解非常困难
另外利用ANN需要对网络初始化和网络拓扑结构进行合理设计
这一设计基本上没有什么理论依据
对于使用者的经验依赖很大
之后就问了一下TCP的交互是一个怎么样的过程,唉,我还是太懒了,上午的时候都被问了这个问题,也不好好的看一下。
TCP连接建立
TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立;
TCP 与 UDP对比
TCP(传输控制协议)和UDP(拥护数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。
TCP包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。在这个握手阶段后,我们就可以 认为在这俩个进程间存在一个TCP连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉TCP拆除这个连接。可靠的传输服务为了保障彼此通信能无 差错地顺序传递所有数据。
当其中任何一个应用程序把一个字节流传如套接字时,它可以指望TCP把同样的字节流传递到对方的套接字,中间不回丢失和重传。TCP是因特网的一种公益服 务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。TCP拥塞机制在网络变得拥塞时阻止发送进程。确切地说,TCP拥塞控制试图把 每个TCP连接限定在它所公平共享的网络带宽上。对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象 一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。
说了这么多,TCP能提供的好的服务,再看一下其缺点吧,首先,TCP不保证最小传输率,通俗点说,TCP不允许发送进程以想要的速率发送数据,受到 TCP拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。其次,TCP不提供任何延时保障,具体点说,发送进程把数据传入自己的TCP套接字 后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了 ,花几秒或则几分钟都不一定。
UDP是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。UDP是无连接的,因此两个进程彼此通信之前没有握手过程。UDP提供不可靠的数据 传输服务,也就是说当一个进程往自己套接字发送一个消息时,UDP不能保障这个消息回最终到达接受套接字。另外,就确实到达接收套节字的消息而言,他们的 到达顺序也可能不是有序的。
UDP不含拥塞控制机制,因此发送进程能够以任意速率往UDP套接字发送数据,尽管不能保证所有数据都到达接收套接字,但是会有相当比列的数据到达。实时应用程序的开发人员往往选择在UDP上运行他们的应用。与TCP类似,UDP也不提供任何延迟保证。
两个链表相交,要求找出第一个相交的节点
《编程之美》里面有一篇是讲如何判断两链表是否相交,读后觉得原文太过啰嗦。于是,笔者总结了一下,此类问题可以扩展为两大类,分别是:
1、单链表与环问题http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
2、单链表相交与环问题(本文)
给定两单链表A、B,只给出两头指针。请问:
1、如何判断两单链表(无环)是否相交?
有两种可取的办法:
(1)人为构环,将链表A的尾节点指向链表B,再判断是否构环成功?从链表B的头指针往下遍历,如果能够回到B,则说明相交
(2)判断两链表最后一个节点是否相同,如果相交,则尾节点肯定是同一节点
2、如何判断两单链表(不知是否有环)相交?
先判断是否有环,判断是否有环可以使用追逐办法,设置两个指针,一个走一步,一个走两步,如果能相遇则说明存在环
(1)两个都没环:回到问题1
(2)一个有环,一个没环:不用判断了,肯定两链表不相交
(3)两个都有环:判断链表A的碰撞点是否出现在链表B的环中,如果在,则相交。(相交时,环必定是两链表共有的)
3、如何寻找两相交链表(不知是否有环)的第一个相交节点?
同样,使用追逐办法先判断是否存在环,分情况讨论
(1)无环:人为构环,将链表A的尾节点指向链表B,则构成一个带环的单链表。这个问题就转换成寻找带环单链表的环入口节点。
解法参考:http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
(2)有环:计算出两链表的长度lA、lB,(环的长度和环到入口点长度之和就是链表长度)
计算带环链表长度,可参考http://blog.csdn.net/liuxialong/archive/2011/06/20/6555850.aspx
如果lA>lB,则链表A指针先走lA-lB,然后链表B指针开始走,两者相遇的点就是相交点
如果lB>lA,则链表B指针先走lB-lA,然后链表A指针开始走,两者相遇的点就是相交点
最后就是硬伤了,没有在linux上面进行过编程。。。。。
唉,重新启程吧。
TCP连接关闭:发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间;
TCP重置:TCP允许在传输的过程中突然中断连接,这称为TCP重置;
TCP数据排序和确认:TCP是一种可靠传输的协议,它在传输的过程中使用序列号和确认号来跟踪数据的接收情况;
TCP重传:在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方,这称为TCP重传;
TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收数据的同时发送自己的确认信息给对方。
TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。
相关文章推荐
- 百度暑期实习一面
- 2017年暑假实习面经: 去哪儿网(一面, 二面, HR面, Offer), 腾讯IEG(一面, GG...), 百度(一面, 二面, 三面, offer)
- 百度母婴 寒假实习一面(电话面试)
- 百度电话一面
- 2018秋招前端面试回顾(阿里、百度、网易、迅雷、美团等)
- 2018腾讯音乐暑期实习内推面试(一面)
- 2016年终总结——回顾实习
- 百度基础技术测试部一面2015/10/15 实习生
- [面经]百度商业搜索部实习面试经历
- 2012年5月6日 百度实习研发工程师笔试题(通用)
- 百度2010暑期实习笔试面试全面备战
- 2018 秋招 百度一面
- 【实习】【算法】百度面经之八
- 阿里巴巴实习内推一面经验总结(客户端开发岗)
- 百度实习电面(二)
- [笔试] 归并排序(2012/5/6 百度实习笔试题) O(1)
- 2011百度暑期实习(运维)海笔部分题目(欢迎讨论)
- 股票买进卖出问题—百度实习招聘面试题
- 【百度实习录】串讲考核
- 【百度实习录】LU-UI模块