剑指Offer——网易校招内推笔试题+模拟题知识点总结
剑指Offer——网易校招内推笔试题+模拟题知识点总结
前言
2016.8.2 19:00网易校招内推笔试开始进行。前天晚上利用大约1小时时间完成了测评(这个必须做,关切到你能否参与面试)。上午利用2小时时间做了下模拟题,模拟题中编程题占用时间比较多,可以先在自己电脑中的IDE编程测试。待测试完成后再将代码拷贝至OJ,运行所给测试案例。考察的知识点范围比较广泛,设计操作系统,Linux、java多线程、网络编程等。模拟题主要考查知识点如下(可能存在遗漏某些知识点的情况):
1.求给出叶子节点时哈夫曼树的带权路径长度。
构造赫夫曼树
1.构造森林全是树。
2.选用两小造新树。
3.删除两小添新人。
4.重复2、3剩单根。
树的带权路径长度 WPL = W1L1+...+WkLk
2.问答题。内部类访问外部变量为何加final关键字?
因为生命周期的原因。方法中的局部变量在方法结束后就要被释放掉,final保证这个变量始终指向一个对象。
首先,内部类和外部类其实是处于同一个级别,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随着被销毁。问题就来了,如果外部类的方法中的变量不定义final,那么当外部类方法执行完毕的时候,这个局部变量肯定也就被GC(Garbage Collection)了,然而内部类的某个方法还没有执行完,这个时候他所引用的外部变量已经找不到了。如果定义为final,java会将这个变量复制一份作为成员变量内置于内部类中,这样的话,由于final所修饰的值始终无法改变,所以这个变量所指向的内存区域就不会变。
但是为什么这里用final却又可以访问呢?
因为Java采用了一种copy local variable的方式来实现,也就是说把定义为final的局部变量拷贝过来用,而引用的也可以拿过来用,只是不能重新赋值。从而造成了可以access local variable的假象,而这个时候由于不能重新赋值,所以一般不会造成不可预料的事情发生。
3.Java泛型的作用,实现原理?List<String> 对象可否赋给List<Object>类型引用?
在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。
例如原先的类型List,现在在细分成List<Object>, List<String>等更多的类型。
注意,现在List<Object>, List<String>是两种不同的类型,
他们之间没有继承关系,即使String继承了Object。下面的代码是非法的
List<String> ls = new ArrayList<String>();
List<Object> lo = ls;
这样设计的原因在于,根据lo的声明,编译器允许你向lo中添加任意对象(例如Integer),但是此对象是List<String>,破坏了数据类型的完整性。
4.TCP如何保障消息顺序及可靠到达?TIME_WAIT状态是怎么产生的?作用?在哪端产生?原因?
5.编程题。数字黑洞问题
6.发行唱片问题。
7.下厨房
源码
package cn.edu.ujn.demo; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.regex.Pattern; /** * 下厨房 * 1.正则分割 * 2.统计未重复出现的单词个数 */ public class Food { public static void main(String[] args) { List<String> list = new ArrayList<String>(); Scanner in = new Scanner(System.in); Pattern pattern = Pattern.compile("[ ]+"); while (in.hasNextLine()) {// 注意while处理多个case String a = in.nextLine(); if(a.length() == 0){ break; } String[] strs = pattern.split(a); for (int i = 0; i < strs.length; i++) { if(!list.contains(strs[i])){ list.add(strs[i]); } } } System.out.println(list.size()); } }
这道编程题还算简单,最后通过了测试。
8.地牢逃脱
这道题真的没有读懂题意,就连给的示例都没有搞明白。Σ( ° △ °|||)︴
解题思路:原来题目中合法步长数k下的k行数据代表可供选择的移动方法,自己当时理解错了。注意到该问题与迷宫问题有一拼,使用回溯法应该可以得到解决。若大家有好的解决方法,还望不吝赐教。
9.分田地
这道题目刚开始时误以为读懂了题目,心想不就是找最小值嘛,不过测试之后才发现,自己想的过于过于简单了。
解题思路:前提是所划分的田地数是16的倍数。最简单的情形是共计16块田地(以上例为例),每人一块,以4*4矩阵为例,每个位置均存在权重值。可采用按行读取,正则分割,寻找最小值的思路解决。当矩阵为n*m(n*m必为16的倍数)数值足够大时,效率问题就会凸显,此时可以考虑使用动态规划算法。以8*8矩阵为例,每人分得4块土地,可按照4个4*4矩阵进行处理。待每个4阶方阵得出最小值后相加即为所得结果。具体如何解决,待后续。已解决的朋友望不吝赐教。
示例代码
package cn.edu.ujn.demo; import java.util.Scanner; /** * * @author SHQ * 分田地 * 1.化整为零 * 2.找16个数中的最小值 */ public class DivideLand { public static void main(String[] args) { Scanner in = new Scanner(System.in); int min = 99; int i = 0; int m = 0; int n = 0; while(in.hasNextInt()){ m = in.nextInt(); n = in.nextInt(); break; } while (in.hasNextLine()) {//注意while处理多个case i++; char [] a = in.nextLine().toCharArray(); for(int j = 0; j < a.length; j++){ if(a[j] < min){ min = a[j]; } } if(i == m+1){ break; } } System.out.println(min-48); } }
10.根据二叉树的先序遍历:a,e,b,d,c;后续遍历:b,c,d,e,a.得出根节点的孩子节点。
二叉树前序:根节点、左子树、右子树;
中序:左子树、根节点、右子树;
后序:左子树、右子树、根节点。
可以发现,二叉树前序中的第一个节点为树的根节点root,然后找出root在中序里面的位置,就可以把前序和中序分别划分为左、右子树两个部分,然后递归调用即可。
举个例子,前序: 3 2 4 8 6 10 ;中序: 2 3 4 6 8 10
首先,5肯定是二叉树的根节点,然后5在中序里面的位置是3号(从0开始),此位置前面的是左子树中的节点,右面的是右子树的节点,即5 || 3 2 4 || 8 6 10。
由后序和中序求前序也是像类似的思想。但是仅仅知道前序和后序无法确定二叉的形状。比如前序 1 2 3 后序 3 2 1 则下面两种情况都符合.
11.Linux网络服务接口:/etc/network/interfaces(/etc/init.d/networking)
12.判定织入点与切入点的配置信息
13.问答题。网易云音乐中如何获取3小时,1天,1周播放次数最多的K首歌曲,请叙述数据结构算法和框架设计。
吐槽
由于牛客网承接的网易内推笔试,结果人数过多判题机直接宕掉了~延长一小时。
一直显示正在提交...严重怀疑自己的程序存在问题
最终.....还是宕掉了
美文美图
剑指Offer——网易校招内推笔试题+模拟题知识点总结的更多相关文章
- 剑指Offer——网易笔试题+知识点总结
剑指Offer--网易笔试题+知识点总结 Fibonacci package cn.edu.ujn.nk; import java.util.ArrayList; import java.util.S ...
- 剑指Offer——京东校招笔试题+知识点总结
剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...
- 剑指Offer——网易笔试之解救小易——曼哈顿距离的典型应用
剑指Offer--网易笔试之解救小易--曼哈顿距离的典型应用 前言 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走 ...
- 剑指Offer——网易笔试之不要二——欧式距离的典型应用
剑指Offer--网易笔试之不要二--欧式距离的典型应用 前言 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的 ...
- 剑指Offer——CVTE校招笔试题+知识点总结(Java岗)
剑指Offer(Java岗)--CVTE校招笔试题+知识点总结 2016.9.3 19:00参加CVTE笔试,笔试内容如下: 需要掌握的知识:Linux基本命令.网络协议.数据库.数据结构. 选择题 ...
- 【剑指offer】【python】面试题2~5
使用python实现<剑指offer>面试题ヾ(◍°∇°◍)ノ゙,以此记录. 2_实现Singleton模式 题目:实现单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含 ...
- 【剑指Offer学习】【全部面试题汇总】
剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...
- 【剑指Offer学习】【所有面试题汇总】
剑指Offer学习 剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退.只有不断地学习才能跟上时候,跟得上技术的潮流! 所有代 ...
- 剑指 Offer 29. 顺时针打印矩阵 + 蛇形矩阵 + 模拟 + 思维题
剑指 Offer 29. 顺时针打印矩阵 Offer_29 题目描述: 题解分析: 题目的初衷是将这道题当做一个简单题处理 这道题一开始想的太复杂了,其实可以参考迷宫广度优先搜索的过程,只不过在选定一 ...
随机推荐
- bzoj4361isn 容斥+bit优化dp
4361: isn Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 375 Solved: 186[Submit][Status][Discuss] ...
- Python paramik
本节内容 paramiko模块 1.paramiko模块 Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 Python的paramiko模块,该模块机遇SSH用于 ...
- C语言程序设计第二次作业——顺序结构
(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 错误信息1: 错误原因:i和d位置错误 改正方法:i和d位置互换 错误信息2: 错误原因:\n后缺了一个" 改正方法:\n后加一个 ...
- PTA 字符串关键字的散列映射(25 分)
7-17 字符串关键字的散列映射(25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位:再用除留余 ...
- nodejs基础教程回顾01
最近在复习nodejs,因为框架太多隔一段时间不用就会忘了,所以没办法必须时常拿出来练练,就像家里有好几辆车,要时不常的轮流开一圈.我就从最基础的开始写,怎么下载安装就不说了,首先是nodejs的三类 ...
- [原创]手把手教你写网络爬虫(7):URL去重
手把手教你写网络爬虫(7) 作者:拓海 摘要:从零开始写爬虫,初学者的速成指南! 封面: 本期我们来聊聊URL去重那些事儿.以前我们曾使用Python的字典来保存抓取过的URL,目的是将重复抓取的UR ...
- python字典无限遍历
#无限遍历dict,通过key获取value,嵌套字典存在多个相同的key,可获取多个key class getValues(object): def __init__(self): pass #无限 ...
- 一些重要的计算机网络协议(IP、TCP、UDP、HTTP)
一.计算机网络的发展历程 1.计算机网络发展 与其说计算机改变了世界,倒不如说是计算机网络改变了世界.彼时彼刻,你我都因网络而有了交集,岂非一种缘分? 计算机与网络发展大致经历如下过程:
- 利用JAVA多线程来提高数据处理效率
肿瘤大数据挖掘中经常需要处理上百亿行的文本文件,这些文件往往高达数百GB,假如文件结构简单统一,那么用sed和awk 处理是非常方便和快速的.但有时候会遇到逻辑较为复杂的处理流程,这样我一般会用JAV ...
- Docker: Failed to get D-Bus connection: No connection to service
Issue: When you execute systemctl command in docker container, you may receive following error. Erro ...