# 三七互娱

💣 过程简述

这个其实是获得了笔试机会。选择题难度不大,算法题部分,当时我并未开始刷 LeetCode,导致没有思绪,直接放弃了。

PS:三七互娱的简历投递网站做的非常一般,投递起来很困难。然后,三七互娱也是「广州三大坑」之一。

# 选择题

  1. 一个 n 个节点的二叉树,每个节点要么没有子节点要么两个子节点,问树的最大高度?

    这里容易混淆高度和深度的区别,不过不影响,因为树的高度和深度是相等的。高度是从下往上数,深度是从上往下数。例如:

    这里 G 的高度为 3,B 的深度为 2。所以这里答案应该是(n+1)/2(n+1)/2

  2. android判断手机电池状态级别的广播action?

    ACTION_BATTERY_CHANGED

  3. 以下是私有 IP 地址的是?

    私有 IP 地址的范围:

    • A 类私有 IP 地址:10.0.0.0~10.255.255.255
    • B 类私有 IP 地址:172.16.0.0~172.31.255.255
    • C 类私有 IP 地址:192.168.0.0~192.168.255.255
  4. 软件测试的目的?

    证明软件存在缺陷,使软件中的缺陷降低到一定程度

  5. Arraylist 与 Linkedlist 查找、添加删除区别

    ArrayList 的实现是通过数组,LinkedList 的实现是通过链表,ArrayList 适用于查找,LinkedList 适合增删改。

  6. HashMap 与 HashTable 键值是否为空

    HashMap 对象的 key 和 value 均可为null,HashTable 对象的 key 和 value 均不可为null。HashTable 是 Java 中的遗留类,目前不太实用。而 HashMap 的设计者认为null作为 key 和 value 是有实际意义的,所以允许其为null

  7. Activity 的分类是什么?

    Activity的分类

  8. 数据库删除 test 表的语句?

    这道选择的选项中有dropdeletetruncate。通过查询,发现:

    • drop:是删除表 test,并释放空间,将 test 完全删除
    • truncate:删除表 test 中的内容,并释放空间,但是不删除表的定义,表结构还有,所以 test 表还在,只是内容为空
    • delete:可以删除指定数据,也可以删除整个表。如果删除表也是仅删除表 test 内的所有内容,保留表的定义,也不释放空间
  9. 针对二叉查找树增加、删除、查找的最坏时间复杂度

  10. jvm 垃圾回收器有哪些?

    常见的垃圾回收器分为3类:

    1. 新生代垃圾回收器:Serial、ParNew、Parallel Scavenge
    2. 新生代和老年代垃圾回收器:Serial Old、Parallel Old、CMS
    3. 老年代垃圾回收器:G1 收集器
  11. ContentProvider 的作用是?

    跨进程通信,不同应用之间可以互相访问对应的数据库

  12. 袋子里有 2 个红球,3 个绿球,2 个蓝球,从中取两个,求一个蓝球都没有的概率?

  13. xml 布局文件放在哪个目录下

    res/layout

  14. ABCDEF 依次入栈,出栈序列为 CBDFEA,问栈的最小容量

  15. 数组未初始化就输出的结果

    int[] a = new int[2];
    System.out.println(a[0]);
    System.out.println(a[1]);
    
  16. 类未构造访问其成员变量的结果

    class T {
        int t;
    }
    T t;
    System.out.println(t.n);
    

# 算法题

2 道算法题全部来自 Leetcode。

  1. 买卖股票问题求最大利润
  2. 求岛屿的周长