经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 职业生涯 » 查看文章
2018校招面试随笔
来源:cnblogs  作者:疯狂阿贾克斯  时间:2018/9/25 19:23:56  对本文有异议

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

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

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

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

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

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

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

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

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

  1. /**
    * 根据设定,4岁成年,age=4,在4,7,10,13岁时会产生新的兔子,age=16时会死亡
    */
    @Data
    class Rabbit {
    public static List<Rabbit> rabbits = new ArrayList<>(); //兔子池
    public static int month = 12; //目标月

    private int age = 0;

    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() {
    rabbits.remove(this);
    }

    public static void main(String args[]) {
    Rabbit rab = new Rabbit(4);
    rabbits.add(rab);
    for (int i = 1; i <= month; i++) {
    new ArrayList<>(rabbits).forEach(j -> j.grow());
    System.out.println("第" + i + "月 ,当前兔子年龄:" + rabbits.stream().map(k -> Integer.toString(k.getAge())).reduce((u, v) -> u + "," + v).get());
    }
    System.out.print(rabbits.size());
    }
    }

  

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号