知名互联网公司校招中常见的算法题

作者/分享人:我是最强青铜杨小强
向 Ta 提问
北京邮电大学本硕毕业,CSDN博客专家,CSDN学院讲师,擅长技术为Java后台开发。小米服务端开发工程师,负责安全风控、登录取号、二次号判断等中间层服务开发。

本场 Chat 主要从知名互联网公司在面试中喜欢提问的算法入手,给大家详细阐述讲解面试中的高频率算法题。

涉及到的算法题主要包括: 排序和查找 链表 二叉树 队列 堆栈 字符串 数组

如果你想在来年的校园招聘中拿下一线互联网公司的 Offer,那么本场 Chat 将助你玩转算法面试! 另外,在知名互联网公司校招 Java 开发岗面试知识点解析一文中,作者详细解读了Java开发岗必考知识点,希望可以帮助大家玩转面试,拿到Offer~

已有790人预订
预订达标
文章出炉
交流日期
     
17.10.30
17.11.13
17.11.20 20:30
查看文章评论/提问
汉娜之眼
你确定你的快速排序代码是正确的吗?麻烦再检查一下。
我是最强青铜杨小强: 感谢您的宝贵意见,是我疏忽了。递归结束条件应该写在前面。正确代码如下所示: public void quickSort(int[] num, int left, int right) { if (num == null) return; //如果左边大于右边,则return,这里是递归的终点,需要写在前面。 if (left >= right) { return; } int i = left; int j = right; int temp = num[i]; //此处开始进入遍历循环 while (i < j) { //从右往左循环 while (i < j && num[j] >= temp) {//如果num[j]大于temp值,则pass,比较下一个 j--; } num[i] = num[j]; while (i < j && num[i] <= temp) { i++; } num[j] = num[i]; num[i] = temp; // 此处不可遗漏,将基准值插入到指定位置 } quickSort(num, left, i - 1); quickSort(num, i + 1, right); }
代娅敏
写的不错,感谢指点,希望继续加油
一纸凉生
快速排序a[i]=key为什么不能省略啊 ,最后I和j相遇的值一定是Key吧
我是最强青铜杨小强: 你好,那句话的含义是将基准值在本趟排序结束之后,放在其最终所处的位置。这样,i位置左边的都是小于基准值的,i右边的都是大于基准值的。后边继续递归,完成排序。
幸福
想退钱的冲动,大哥能不能自己先跑一下,第一个算法排序学习半天报索引超出异常,然后看到评论里更正了,直接复制再跑一遍还是报索引超出异常,这是有多自信!!!!!
幸福: 不好意思,自己调用错了,参数J应该length-1
我是最强青铜杨小强: 作者水平有限,文中如有错误之处,烦请各位指出,我们一起进步
你可能还喜欢
如何设计一个灵活的 MySQL 数据表,应对灵活多变的需求
李岩
Jenkins 自动化构建部署实战
火币集团研发中心
Java 程序员应掌握的 Nginx 实战应用
JPM
带你玩转 JSON
能量架构师
实战剖析 Java 秒杀系统的实现
虎口脱险
小程序从入门到进阶
loonglong
微信扫描登录