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

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

本场 Chat 主要从知名互联网公司在面试中喜欢提问的算法入手,给大家详细阐述讲解面试中的高频率算法题。涉及到的算法题主要包括:排序和查找、链表、二叉树、队列、堆栈、字符串以及数组等方面。如果你想在来年的校园招聘中拿下一线互联网公司的 Offer,那么本场 Chat 将助你玩转算法面试!

已有279人预订
预订达标
文章出炉
交流日期
     
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
我是最强青铜杨小强: 作者水平有限,文中如有错误之处,烦请各位指出,我们一起进步
你可能还喜欢
从小白到架构师的成长之路
一盘花生米
二叉树的原理推敲与动手种树
浅浅
机器学习004:循环神经网络实现与文本分类问题
如是
电商高并发、高流量下分布式 ID 的解决方案(主键生成策略)
Array老师
DevOps 工具链:在线报障的流程、系统设计和自改进体系的建设
常新居士
谈谈 Java NIO
应书澜
微信扫描登录