2018校招-美团面试算法题汇总(就是把看到的题摘出来)
因为周四要美团二面,所以在牛客上搜集美团面试算法题
明天把这些题尽量刷一刷。。。
希望能帮到有需要的人~~~
找到如下题:
重建二叉树
二分查找
字符串全排列
手写快速排序算法,并解释过程。
从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”,用最优的时空复杂度。
一组数中只有一个是奇数个,怎么找到这个数?
全部进行异或,最后的数即为要求的数
一组数中如果只有一个数是1个,其他数是3个,怎么找出这个数?
int singleNumber(int A[], int n) { int ones = 0; int twos = 0; int i; for(i=0;i<n;i++) { ones = (~twos) & (ones ^ A[i]); twos = (~ones) & (twos ^ A[i]);//注意这里用的ones是新的ones,这一点和数电不同。 } return ones; }
给一个数组,给一个函数实现第m位到第n位的和,请求量很大是怎么办
事先计算好sum[i], 表示从0到i的和,要求m到n的和,直接return sum[n] - sum[m];
应该是请求多的时候,每次都遍历求比较费时
一个数组,有正有负,把正的移到右边,负的移到左边。
判断一个链表是否有环(我回答快慢指针,因此引出下一个问题)
假设一个节点为100的环形单链表,你这方法要走多少步判断出有环,99个节点呢?
判断整数是不是2的幂次方?
是不是4的幂次方,8的幂次方呢?
字符全排列问题
复杂度多少
(面试官还给了一种思路:图的深度优先遍历)
两个队列实现栈
旋转有序数组,找到其中一个值
如何判断一个字符串是不是回文串 时间复杂度O(n) 空间复杂度O(1)
数组中找第k大的数
三个线程按照顺序输出
跳台阶(应该是剑指offer题后面的扩展题)
找出数组中最大连续的和
从一个数组起点到终点,数组中有些位置不能去,问能不能到达
C语言释放一个单链表
括号匹配
已知30天内每天的股票价格,求哪天买入哪天卖出收益最大
链表反转的操作,参数结构自己定
二叉树的后序遍历,递归非递归两种形式分别该怎么写
如何在一颗有序二叉树中搜索到给定的值