#剑指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)
##完全二叉树第一个叶子节点的编号

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/c8d039488f768dfd4681e0d6dcf57975.png) ###解法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的父结点,左孩子编号为2i,右孩子编号为2i+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;}
![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/f4a9675b10485d32841633873f4b6722.png) ![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/5c900126d8293a73498593646184a227.gif) ![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/191886d3463f34a5bb032982869f2499.gif)

剑指Offer——小米+小红书笔试题+知识点总结相关推荐

  1. 【剑指Offer学习】【面试题66:矩阵中的路径】

    [剑指Offer学习][面试题66:矩阵中的路径] 题目:请设计一个函数,用来推断在一个矩阵中是否存在一条包括某字符串全部字符的路径.路径能够从矩阵中随意一格開始.每一步能够在矩阵中间向左.右.上.下 ...

  2. asp 判断数组等于_剑指Offer(牛客版)--面试题4:二维数组中的查找

    SCDN博客:https://blog.csdn.net/weixin_41923658 微信公众号:「汤姆鱼」 -------------------------------------手动分割线- ...

  3. 【剑指Offer学习】【面试题40:数组中仅仅出现一次的数字】

    题目:一个整型数组里除了两个数字之外.其它的数字都出现了两次,请敲代码找出这两个仅仅出现一次的数字. 要求时间复杂度是O(n),空间复杂度是O(1). 举例说明 比如输入数组{2, 4, 3, 6, ...

  4. 【2020牛客网笔试整理】小红书笔试题

    薯队长写了一篇笔记草稿,请你帮忙输出最后内容. 1.输入字符包括,"(" , ")" 和 "<"和其他字符. 2.其他字符表示笔记内容 ...

  5. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  6. 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知名IT企业的经 ...

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

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

  8. java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...

  9. 剑指Offer第二版Java代码实现

    剑指Offer第二版Java代码实现 A.单例模式 面试题 2:实现Singleton模式 B.面试需要的基础知识 面试题 3:数组中重复的数字 面试题 4:二维数组的查找 面试题 5:替换空格 面试 ...

最新文章

  1. proxychains 使用指北
  2. 小白学数据分析-----Excel制作INFOGRAPHIC
  3. Keras之DNN:利用DNN【Input(8)→(12+8)(relu)→O(sigmoid)】模型实现预测新数据(利用糖尿病数据集的八个特征进行二分类预测
  4. 【Spring注解系列02】@CompentScan与@CompentScans
  5. Kubernetes用户指南(二)--部署组合型的应用、连接应用到网络中
  6. Linux概述及centos版本介绍和下载地址
  7. 科创板第二天:全线翻绿 仅4股飘红
  8. 解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.
  9. Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx
  10. 【笔记】PMBOK背诵技巧总结
  11. 快速利用第三方平台SDK,实现点对点语音通话
  12. GMSK调制 MATLAB代码
  13. SPSS两独立样本t检验
  14. 电脑锁屏壁纸提取方法
  15. 关于UDS诊断会话管理功能相关服务的学习笔记
  16. Windows10_如何修改用户文件夹下的中文用户文件夹名
  17. 朱棣文2009年哈佛大学演讲:未来并非在劫难逃
  18. 优秀的JavaScript模块是怎样炼成的
  19. Android微信支付订单支付失败的问题
  20. [从头读历史] 第252节 春秋时期各诸侯国的地域分布

热门文章

  1. C语言大作业 数据结构 医院候诊排队系统 代码【可运行代码+截图】
  2. python母婴用品电商平台django
  3. Snapchat收购以色列AR创企,进军AR购物?
  4. 《微服务实战》微服务设计原则
  5. Matlab——zeros函数和ones函数
  6. 机动车 科目一 之 交通信号标识标志
  7. 关于ffmpeg合成音视频报错的解决办法
  8. WordPress常用函数大全
  9. 【亡羊补牢】JS灵魂之问 第18期 修炼内功 Object.creat()基础
  10. 管理类联考——写作——分数篇——论说文