今年4月底入职当前互联网公司,有幸参加了公司2018校招,负责某java岗初试的一面或者二面(初试一轮或者两轮看情况的)。第一次参与校招,持续两天,今天刚忙完,晚上躺在床上竟有点睡不着,想反思下这两天的操作,文笔不佳,想到啥写点啥。

  连续的面试下来,感觉被考验的既是校招生,也是自己。来面试的不乏名校高材生,更有竞赛高手,年级排名靠前的学霸,感觉多数是完胜当年刚毕业时的自己。

  由于很多学生并不会java,自己给面试者准备的内容一是操作系统、计算机网络、算法与数据结构、http相关随机发问;二是简历上的项目深挖(但是感觉对于学生的python和c++项目大多数最终还是面试效果不太理想,需要提升自己的技能覆盖面);三就是最后的编程题;

  在最后的编程题上,主要准备了三道不同的题目,看心情随机问。其一是回文算法,比较简单,但答上来后会升级,升级后寻找当前字符串的最长回文子串,不要求实现给出思路就行;其二是寻找两个字符串的最大公共子串;其三是自创的兔子问题改编版:初始有一对成年兔子,成年兔子每3个月会生一对兔子(一开始说成年当月不生,后来干脆统一成年当月也生),小兔子需要4个月成年,成年兔子1年后死亡,求n个月后兔子对数。

  总的来说在内容一、二上的面试感觉自己做的还可以,但在编程题的面试过程中,还是有很多需要改进的敌方(睡不着的主要原因,觉得是不是有点对某些好学生不公平?)。

  其一是对于回文算法的升级版,前两个编程题都是反复挑选的网上的题,因此也是有看过网上能找到的各种实现。答案其实多重多样,但在第一天上午的面试中,有一个同学在升级难度后最终没找到思路,最后请求我给出见解,略微遗憾的是,当时我一下子也忘了怎么弄了,遂把前一个学生的解答思路回复给他(把字符串反转,然后就变成了题2,可以有新的思路了),但其实也并没有为该同学解答困惑。

  其二是对于求最大公共子串问题,没有适当准备给面试者的提示,陷入当面试同学请求提示时感觉提示了就毫无难度了,不提示又不太好的尴尬境地(最坏的结果是换题,换题非常不好,音响很深的一妹子被我换题后问懵了,感觉跟自己没准备好这题的提示有一定的关系)

  第三题自创的题,自己准备了一套面向对象的解法,但由于多数同学不会java,最终也没有同学按照我的思路来。不过也得到了各种千奇百怪的答案,各有特色,现场无法逐一验证, 很多答案在现场沟通中暂时没发现漏洞。(ps:所有的同学都忽略了兔子会死亡的设定,选择性忽略?)

  下面是自创兔子问题的答案,不是最优解但感觉思路明朗。  

@Data
class Rabbit {
    public static List<Rabbit> rabbits = new ArrayList<>(); //兔子池
    public static int month = 12; //目标月

    private int age = 0;
    private boolean alive = true;

    public Rabbit(int age) {
        this.age = age;
    }

    public void grow() {
        this.age++;
        if (age >= 4 && age < 16) {
            breed();
        }
        if (age == 16) {
            die();
        }
    }

    private void breed() {
        if (this.age % 3 == 1) {
            rabbits.add(new Rabbit(0));
        }
    }

    private void die() {
        this.alive = false;
    }

    public static void main(String args[]) {
        Rabbit rab = new Rabbit(4);
        rabbits.add(rab);
        for (int i = 1; i <= month; i++) {
            int temp = rabbits.size();
            for (int j = 0; j < temp; j++) {
                rabbits.get(j).grow();
            }
        }
        System.out.print(rabbits.stream().filter(i -> i.isAlive()).count());
    }
}

  

 

版权声明:本文为caizhiqin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/caizhiqin/p/9638336.html