剑指Offer——小米+小红书笔试题+知识点总结
剑指Offer——小米+小红书笔试题+知识点总结
情景回顾
- 时间:2016.9.23 19:00-21:00
2016.9.24 15:00-17:00 - 地点:山东省网络环境智能计算技术重点实验室
- 事件:小米笔试、小红书笔试
- 注意事项:要有大局观,该舍弃的还是要舍弃,不要在一道编程题上占用超过30分钟的时间。当你思考了15分钟,还没有好的解决方式的时候,毅然舍弃!
public static void main(String[] args) {
// 错误声明方式
// int a [][3];
// 正确声明方式
int a [][];
// 输出 "50.1",字符串拼接
System.out.println("5" + 0.1);
// 输出 "0.15",字符串拼接
System.out.println(0.1 + "5");
}
构造函数是由jvm创建类实例时自动调用,故其修饰符为private demo(){}
二分查找的时间复杂度:O(logn)
完全二叉树第一个叶子节点的编号
解法1
深度为6的满二叉树的节点数为 2^6 - 1 = 63;
深度为7的满二叉树的节点数为 2^7 - 1 = 127;
或者根据log2n(往下取整)+1
因此含有100个节点的完全二叉树的深度为7,叶子节点分布在第6层和第7层。
第七层叶子节点数为:100 - 63 = 37;
37 / 2 = 18余1;
因此,第6层的前18个节点是2度节点,第19个节点是1度节点即只有左子树,没有右子树,即第6层前19个节点为非叶子节点,之后为叶子节点。
因此编号最小的叶子节点编号为:2^5 - 1 + 19 + 1 = 51.
其中,2^5 - 1位前5层非叶子节点数(由满二叉树的节点计算公式得出)。
解法2
根据二叉树性质5:
- 如果对于一棵有n个节点的完全二叉树(其深度depth=log2n+1下取整)的节点按层序编号(从第一层到第depth层,每层从左到右),对任一节点i(1
<= i <= n):
1.如果i=1,则节点i是二叉树的根,无双亲;如果i>1,则其双亲节点是i/2(下取整)。
2.如果2i>n,则节点i无左孩子(节点i为叶子节点);否则其左孩子是节点2i;
3.如果2i+1>n,则节点i无右孩子;否则其右孩子节点为2i+1。
完全二叉树中,对于编号为i的父结点,左孩子编号为2*i,右孩子编号为2*i+1;
编号为100的节点(为左孩子)对应的父节点编号为50,故最小叶子节点编号为51。
简答题
高可用技术及原理(网络、程序、开源软件)
单例设计模式
// 懒汉式
public class Singleton {
// 延迟加载保证多线程安全
Private volatile static Singleton singleton;
private Singleton(){}
public static Singleton getInstance(){
if(singleton == null){
synchronized(Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}
// 饿汉式
class SingletonHungry{
private final static SingletonHungry singletonHungry = new SingletonHungry();
private SingletonHungry(){}
// 务必使用static声明为类所属方法
public static SingletonHungry getInstance(){
return singletonHungry;
}
}
线程与进程的特征及区别
详见博文《Java进阶(四十四)线程与进程的特征及区别》。
编程题
表达式合法判断(栈的运用)
public static boolean chkLegal(String A) {
Stack<Character> stack = new Stack<Character>();
for(int i = 0; i < A.length(); i++){
Character ch = A.charAt(i);
if(ch == '{' || ch == '[' || ch == '('){
stack.push(ch);
continue;
}
if(!stack.isEmpty()){
Character c = stack.peek();
if(ch == '}' && c == '{')
stack.pop();
else if(ch == ']' && c == '[')
stack.pop();
else if(ch == ')' && c == '(')
stack.pop();
}
}
if (stack.isEmpty())
return true;
return false;
}
剑指Offer——小米+小红书笔试题+知识点总结的更多相关文章
- 剑指Offer——搜狐畅游笔试题+知识点总结
剑指Offer--搜狐畅游笔试题+知识点总结 情景回顾 时间:2016.9.24 10:00-12:00 地点:山东省网络环境智能计算技术重点实验室 事件:搜狐畅游笔试 注意事项:要有大局观,该舍 ...
- 剑指Offer——完美+今日头条笔试题+知识点总结
剑指Offer--完美+今日头条笔试题+知识点总结 情景回顾 时间:2016.9.28 16:00-18:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:完美世界笔试 ...
- 九度 Online Judge 之《剑指 Offer》一书相关题目解答
前段时间准备华为机试,正好之前看了一遍<剑指 Offer>,就在九度 Online Judge 上刷了书中的题目,使用的语言为 C++:只有3题没做,其他的都做了. 正如 Linus To ...
- 《剑指offer(第二版)》面试题60——n个骰子的点数
一.题目描述 把n个骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率. 二.题解 <剑指offer>上给出的两种方法,尤其是代码,晦涩难懂且没有注释 ...
- 结合《剑指offer(第二版)》面试题51来谈谈归并排序
一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对.要求输出数组A中的逆序对的总数.例如,对于数组{7,5,6 ...
- 【剑指Offer学习】【面试题:二维数组中的查找】PHP实现
最近一直看剑指Offer.里面很多算法题.于是就想着用PHP来显示一下. 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的 ...
- 《剑指offer(第二版)》面试题64——求1+2+...+n
一.题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句 (即三元运算符,A? B : C) 二.题解 虽然求和问 ...
- 《剑指offer(第二版)》面试题55——判断是否为平衡二叉树
一.题目大意 输入一颗二叉树,判断该二叉树是否为平衡二叉树(AVL树). 二.题解 <剑指offer>上给出了两种解决方式: 1.第一种是从根节点开始,从上往下遍历每个子节点并计算以子节点 ...
- 经典面试题目——找到第n个丑数(参考《剑指offer(第二版)》面试题49)
一.题目大意 给你一个数n,要求返回第n个丑数.其中,丑数的定义如下: 丑数是指只包含因子2.3和5的数.(数字1也是丑数,不过是个特例)引用<剑指offer>上的话来说,对于一个数M,如 ...
随机推荐
- windows版本的phantomjs-2.1.1-windows安装
windows版本的phantomjs-2.1.1-windows安装 1.下载 链接:http://pan.baidu.com/s/1dEUl6dN 密码:oij8 2.安装 下载好之后解压放到某个 ...
- BZOJ 4260 Codechef REBXOR
Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output 输出一行包含给定表达式可能的最大值. Sample ...
- USACO 2017 February Platinum
第二次参加USACO 本来打算2016-2017全勤的 January的好像忘记打了 听群里有人讨论才想起来铂金组三题很有意思,都是两个排列的交叉对问题 我最后得分889/1000(真的菜) T1.W ...
- 【LSGDOJ 1333】任务安排 dp
题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始 ...
- bzoj 1046: [HAOI2007]上升序列
Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ...
- [BZOJ]1046 上升序列(HAOI2007)
和字典序有关的题型啊. Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < x ...
- Mysql 基于GTID的主从复制(实操)
实现环境: Master 主:192.168.0.102 (Mysql 5.6.36) Slave 从 :192.168.0.103 (Mysql 5.6.36) 步骤1.在主DB服务器上建立复制账 ...
- Delphi下DLL编程知识(转)
一. DLL和系统变量 在 System 单元声明的变量中,有几个对DLL编程有特殊影响.IsLibrary 可以检测代码是执行在应用程序中还是执行在DLL中,在应用程序中 IsLibrar ...
- 记一次sql优化——left join不走索引问题
sql一执行就卡住,然后就...杀进程了 看了一下表的大小 第一反应就是加索引,然后explain看了一下走什么索引了,结果很尴尬,三个表,只走了一个索引...一群人在那纠结为毛走不了索引. 无意间发 ...
- Linux下解决无法远程连接数据库问题
起因 今天在ubuntu16.04环境下通过mysql workbench访问远程数据库时,发现无法连接问题,解决思路及方法记录如下,不足之处,请多指教. 问题 通过workbench输入密码访问时报 ...