剑指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——网易校招内推笔试题+模拟题知识点总结的更多相关文章

  1. 剑指Offer——网易笔试题+知识点总结

    剑指Offer--网易笔试题+知识点总结 Fibonacci package cn.edu.ujn.nk; import java.util.ArrayList; import java.util.S ...

  2. 剑指Offer——京东校招笔试题+知识点总结

    剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...

  3. 剑指Offer——网易笔试之解救小易——曼哈顿距离的典型应用

    剑指Offer--网易笔试之解救小易--曼哈顿距离的典型应用 前言 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走 ...

  4. 剑指Offer——网易笔试之不要二——欧式距离的典型应用

    剑指Offer--网易笔试之不要二--欧式距离的典型应用 前言 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的 ...

  5. 剑指Offer——CVTE校招笔试题+知识点总结(Java岗)

    剑指Offer(Java岗)--CVTE校招笔试题+知识点总结 2016.9.3 19:00参加CVTE笔试,笔试内容如下: 需要掌握的知识:Linux基本命令.网络协议.数据库.数据结构. 选择题 ...

  6. 【剑指offer】【python】面试题2~5

    使用python实现<剑指offer>面试题ヾ(◍°∇°◍)ノ゙,以此记录. 2_实现Singleton模式 题目:实现单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含 ...

  7. 【剑指Offer学习】【全部面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...

  8. 【剑指Offer学习】【所有面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退.只有不断地学习才能跟上时候,跟得上技术的潮流! 所有代 ...

  9. 剑指 Offer 29. 顺时针打印矩阵 + 蛇形矩阵 + 模拟 + 思维题

    剑指 Offer 29. 顺时针打印矩阵 Offer_29 题目描述: 题解分析: 题目的初衷是将这道题当做一个简单题处理 这道题一开始想的太复杂了,其实可以参考迷宫广度优先搜索的过程,只不过在选定一 ...

随机推荐

  1. HDU 5506(GT and set)

    题意: 表示看了很久,然而发现还是没看懂题. 正解:给你a个集合,让你把他们合并成k个,当两个集合有公共数字时可以合并. (一直以为是合并后,每个集合至少有两个数字相同- -,这英语也是醉了) 思路: ...

  2. shell基本命令

    linux基本命令和shell基本命令,好多人傻傻分不清. linux基本命令积累如下: pwd:显示当前工作目录 cd:改变当前目录 ls:显示当前目录中所有目录文件和文本文件 ls -F:显示当前 ...

  3. @RequestBody和@RequestParam区别

    @RequestParam 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容.(Http协议中,默认传递的参数就是applicati ...

  4. 跨域资源共享CORS与JSONP

    同源策略限制: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果没有同源策略,攻击者可以通过JavaScript获取你的邮件以及其他敏感信息,比如说 ...

  5. 用一个div模拟textarea的实现

    <textarea> 标签定义一个多行的文本输入控件.但是它不能像div一样随着内容增加而自动增加,一言不合就出现滚动条,有是有为了更好的交互,可能需要使用div来模拟textarea的实 ...

  6. 解释session

    我理解的session就是,多个页面都要使用某一个或一些数据,这时就可以用session,将数据暂时保存起来,这样其他的页面开启session,就能将那些数据拿出来使用.

  7. Codeforces Round #305 (Div. 2) A. Mike and Fax 暴力回文串

     A. Mike and Fax Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/548/pro ...

  8. PHP 字符串变量

    PHP 字符串变量 字符串变量用于存储并处理文本. PHP 中的字符串变量 字符串变量用于包含有字符的值. 在创建字符串之后,我们就可以对它进行操作了.您可以直接在函数中使用字符串,或者把它存储在变量 ...

  9. MongoDB 查询分析

    MongoDB 查询分析可以确保我们建议的索引是否有效,是查询语句性能分析的重要工具. MongoDB 查询分析常用函数有:explain() 和 hint(). 使用 explain() expla ...

  10. Docker标准化开发测试和生产环境

    对于大部分企业来说,搭建 PaaS 既没有那个精力,也没那个必要,用 Docker 做个人的 sandbox 用处又小了点. 可以用 Docker 来标准化开发.测试.生产环境. Docker 占用资 ...