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

作者/分享人:我是最强青铜杨小强
向 Ta 提问
小米服务端开发工程师,北京邮电大学土著硕士毕业,CSDN博客专家,擅长技术为Java后台开发;在2017年暑期实习校招中拿到了百度、搜狐、京东和去哪儿网的实习Offer;在2018届校园招聘中,拿到了百度、小米科技、搜狐视频、瓜子二手车、一点资讯等知名互联网公司Offer。不断的笔试、面试和总结使得本人拥有丰富的应试技巧,希望可以和大家分享交流,帮助更多的同学。

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

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

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

已有766人预订
预订达标
文章出炉
交流日期
     
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
我是最强青铜杨小强: 作者水平有限,文中如有错误之处,烦请各位指出,我们一起进步
你可能还喜欢
如何成为一名合格的 C/C++ 开发者?
范蠡
从新一期技术雷达看技术领域最新趋势
徐昊
微服务中的短信服务如何设计?
猿天地
亿级 QQ 会员活动运营系统的设计之道
廖声茂
详解 Java 常用的四种锁机制优缺点
安爷
数据科学 Kaggle 比赛项目实战:Titanic
刘明
微信扫描登录