腾讯常见问题
蛮看重排序算法的哦。
喜欢问一些智力题、数学题。
海量数据问题
问红黑树
数组中重复的数据 // leetcode442
讲思路:玻璃球临界碎点的问题 // 知乎
讲思路:爬楼梯问题 // dp
再问你一个数据结构的问题,数组和链表有什么区别?
如果要让你对数组中的数字进行排序你会有哪些方法?// 快排堆排blabla
快速排序是稳定的排序吗?有什么方法尽量避免变量选取不好的情况?
假如说,现在有一个数组,需要你去找到最大的 K 的数字,该怎么实现? // 堆
笔试题1:删除无序链表中的重复结点(能否优化)// leetcode-面试题02.01移除重复节点
笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。// 前中后
代码题是一道遍历View树 // Android算法题 给定ViewGroup打印其内所有的View 递归 bfs dfs 就是考察树的遍历
编程题:二叉树先序遍历的非递归实现 // leetcode144
如何找链表倒数第n个元素?快慢指针 // leetcode19
一个数组插入删除查找和链表的效率对比?如果一个数组要反复插入删除怎么优化降低时间复杂度?(一开始没想到,面试官提示其实就是垃圾回收的算法 原理就是“标记-查找”。每次删除的时候元素不是真的被删除了,而是先标记,最后统一移动数组元素,减少移动次数) // 原来如此
效率高的排序方法 // 时间复杂度是nlogn的:快排、堆排
快速排序时间复杂度 // nlogn
最坏情况 100 个数不排序,怎么找到中位数,内存只能装 10 个数 // 解法 使用快排的思想,不停的partition
反转链表 两个链表相交,怎么找到那个相交点 // 双指针 lcof52
一大段文章,怎么找到想要的字符串 kmp 算法
红黑树的查找复杂度// logn
红黑树插入复杂度 // logn
查找、插入、删除的时间复杂度都是 logn
数组和链表的区别 // √
数组和链表的优缺点?// √
常见的效率较高的排序算法?时间复杂度分别是多少 // √
如何找出数组中的重复元素?(排序)如果不排序呢?(哈希表)// √
如何实现链表反转?// lcof24 递归和双指针迭代
海量数据如何实现排序后写入文件?前提是内存不够一次性写入所有数据
海量数据如何寻找中位数?不能排序,乱序数组中查找
// 别让我碰到小Q的题,谢谢
算法题:N亿个数,找出里面不重复的数,分配的内存很有限
N多个数,找出里面重复最多的数
链表和队列,队列和栈 // 数据结构基础
算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。
数据结构,好像问了集合?// Collection。Java容器那一节要熟悉
跳台阶 // 斐波那契数列
判断链表相交 // 双指针
判断回文链表 // 使用快慢指针找到链表中点后,反转后半段链表,再进行比较即可
算法:判断AVL树 // wiki 平衡二叉树 lcof55
算法:判断二叉查找树 // BST wiki leetcode98
面试官选了一道算法题:从n个数中选出出现次数为奇数次的两个数,并从小到大排序输出 // 异或
// 1 1 2 2 3 3 4 4 4 5 5 5
// a^a=0 a^0=a
手撕生产者消费者代码 // 不想撕
手撕客户端和服务端通信代码 // 还考这种的吗
还有一些问题遗忘了,最后是做一道编程题,二叉树查找相关的,用递归完成了。// 看Notes BST相关
智力题:两个骰子(6面)如何表示2月全部日期 //
编程题考查二叉树Z字型遍历,不能用STL库。// 层次遍历分奇偶层即可 lcof32
两个人轮流投掷硬币,规定正面赢,正反面各50%概率,计算先投的人获胜的概率 // https://www.zhihu.com/question/290055193/answer/467894271
编程题两道:中序和后序推导出前序(二叉树递归完成)// lcof07 重建二叉树
给出一个链表删除倒数第五个节点 // leetcode19 快慢指针
编程题是:数组中每个值看作一栋楼的高度,站在数组中的一个位置求前后能看到的楼的数目(高楼挡在前面会看不到后面的楼)
概率题:x%的人喜欢篮球、y%的人喜欢排球、z%的人喜欢足球,问同时喜欢篮球和排球的人是多少
编程题是:两个超大的字符串文件,求他们的最长回文子串,要求不能调用库(当时用动态规划完成,但是时间复杂度为N^2,其实用马拉车算法可以降低复杂度,但当时我并没有练过,所以就把代码交上去了)
// 会个dp差不多啦 leetcode5 最长回文子串
跳台阶知道吧,怎么做啊。// 斐波那契数列
一个链表,让你找最中间的节点,你怎么找? // leetcode876
两个大文件,一个比较大,一个比较小,让你求交集,你怎么做?
我们再问两个智力题吧,没有固定答案,不要限制自己的思路,想到啥说啥,一个粗细不一样的绳子,完整的烧完1个小时,你怎么让他烧15分钟(不一定烧完)。
结合从两头开始烧,半个小时烧完,我给他叭叭了一下,但具体怎么回答的忘了,面试官还给我讲了讲,然后就说嗯,好吧,这题就算你过了。。
一副全新的扑克牌,按顺序的,AAAA,2222,3333,这种,你怎么洗牌能洗散开?
说了几种,我把平时洗牌的绝学亮出来了,他还让我说,我想不出来了,他说,嗯好的,这个题算你过吧。
题目大概和leetcode 59题类似。大概如下,从右上角开始顺时针。剑指offer上也有类似的,反正就是刷题,刷题,刷题啊!!!
那我们再说说链表和数组?比较一下它们有啥区别吧,然后再说说数组里面删除一个元素会怎么样,插入一个元素会怎么样,修改一个元素会怎么样,会发生什么事情?
快排思想,稳不稳定,怎么判断稳定性,快排空间复杂度,时间复杂度
手撕生产者消费者的伪代码,问,如果队列满了怎么办
一个字符串,找出出现次数最多的字符,建立哈希表
介绍二叉树,介绍B+树,红黑树,用途
了解哪些排序算法,说一下怎么实现的。
快排是什么?时间复杂度多少?
七大排序分别是什么?
二叉树原理?
红黑树是什么?
线段树 B+树?
正式批:字符串出现频率中位数、最长公共子串问题LCS
二叉树
B树(插入/删除过程)
上来大数相乘,我做的眼泪都快流出来了。
考了道算法题,求1-1000有多少个1
两道算法题,一道是一个数分解成两个质数和,问有多少对,比如10,分解成(5,5),(3,7),分解成两对。
算法就问了求链表交点问题
有两个无序的整型数组 如何快速找出它们的交集
(思考了5秒以后就回答了使用Map 然后再和他分析了一下 怎么快速找出元素 如何扩容之类的。)
8bit的数,怎么判断4个1
数据结构哪些地方学的不好,为什么
6. 知道哪些排序算法,时间复杂度
7. 稳定排序?nlogn的稳定排序
二叉树的问题
二叉树的几种遍历方法,如何进行先序遍历?从左还是从右开始遍历?从左开始遍历后如何再i进行遍历?
常用的几种排序?每个排序的时间复杂度和空间复杂度。
有一个3L水的杯子和5L水的杯子,如何倒出4L的水
算法题 两数之和 // leetcode1
这个题,,,基本上就是签到题,我是用HashMap优化的,有点取巧了
智力题 瓶子从100楼往下扔,一共两个瓶子,问从那个楼扔瓶子刚好碎 // leetcode887
这个题是腾讯最爱问的智力题,这块我一开始想到二分的方法,但是仔细一想这个方法不可以,然后我就想到分段的方法,第一个瓶子10层10层间隔扔,确定大范围,然后第二个瓶子确定小范围,然后面试官说这个方法还是不对,但是比上一个方法好一点,让我再想想,然后我就很着急就想不出来//最后在吴师兄的推文里面看到了解答
红黑树概念,二叉树遍历 // 红黑树我可以不看了吗
因为上一个问题讲到红黑树了,然后讲了下红黑树的概念,然后问其他的我真的不会了,就问了下二叉树的前,中,后遍历方式
算法题 如何判断一个数是2的次方 如何优化 时间复杂度 // leetcode231 位运算 判断 n & n-1 是否等于0即可
快排的思想 如何优化 时间复杂度
这个也是基本问题,然后讲了下快排的思想,然后优化的方式讲了下中间值取值的优化,然后为什么这样做
大数据排序
给1亿的int类型的数,如何找到最大的100个,这种问题肯定不可能直接排序,先分开存储,然后我的思路是用桶排的思想进行处理,可能我的方法不是最优解。
快排和归并排序的复杂度(快排的最差复杂度)
快排为什么比其他 nlogn 快(常数项)// 知乎
稳定排序?nlogn 排序哪些是稳定的?// 快排堆排都不稳定,只有归并排序是稳定的
最后算法题,判断一个8bit串只含有4个1,要求比较次数小于遍历。(一如既往的悔恨啊,逼到面试官最后直接爆答案)// 位运算?
说一说快排 // 捋一遍思路
怎么评价一个算法的时间复杂度// 当然o(1)是最好
将1-100随机放入到长度为100的数组里面,得到的随机数组中不允许有重复数字 // 解法
写快排。// 手推
大数相乘。 // 看看
1、两个字符串s1、s2,字符串里只包含左括号和右括号,要求将两个字符串作合并,最后得到的串能够有正确的左右括号匹配格式,并且合并的串中的字符保持原s1和s2中顺序不变,算出有多少种合并情况。(知道怎么做,没说清楚)//
2、有3000根萝卜,要运到3000千米外,现在有一头驴,它一次可以驼1000根萝卜,然后驴每走1千米,驴哟啊吃掉一根萝卜。问你怎么样运萝卜可以将最多的萝卜运到终点。(算错了,很尴尬)// 解法
3、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少一种。每个人都能看到其他人的帽子的颜色,却看不到自己的。主持人先让大家看别人头上戴的是什么帽子,然后关灯。如果有人认为自己戴的是黑色的帽子,就拍手。第一次关灯,没有声音。于是再开灯,大家再一看,关灯时候仍然是鸦雀无声。一直到第三次关灯,再有噼噼啪啪的拍手声音响起。问有多少人戴着黑色的帽子。// 解法
快排 // 手推
堆排序 //
给两个数组求最长公共子串 // dp
八皇后
概率论题。挺简单的,一套猛推。推着推着数字记错了。结束才想到
给电话区号,最快的方法找到对应的城市(关系已知)
二叉树有几种遍历方式 // 前中后
说一下堆和栈的特点 // 可以说数据结构层面的也可以说一点os层面的
介绍一下队列和栈,它们在数据进出顺序的方面有什么不同点。//
红黑树查找和插入的时间复杂度
反转单词(最小的空间复杂度)// lcof58 双指针实现 从尾部开始向前遍历
算法题:递增序列两数之和,输出乘积最小的两数 // 啥意思,这到底是一个题还是俩题
递增序列两数之和 // leetcode167 二分查找
智力题,5位数乘以4后会得到它的反转,5分钟推导这个5位数并给出思路 // 解法
智力题,100层的建筑,玻璃球会在某个临界楼层摔碎,用两个玻璃球怎么试出来这个临界楼层 // 这个题出现的好频繁,一定要搞懂 // leecode887 k=2 n=100即这种情况 去学一下方法一
C++ 实现一个四则运算,输入是字符串 // leetcode224 基本计算器 227 基本计算器II
最后更新于