1,在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
(腾讯提前批)
主要三个方法:1,排序之后打印len-k个元素;2,使用堆;3,使用二分排序思想,使左边元素数目为K-1个,则基数值就是所求.
2,给定一个 n
个元素有序的(升序)整型数组 nums
和一个目标值 target
,写一个函数搜索 nums
中的 target
,如果目标值存在返回下标,否则返回 -1
。
(腾讯提前批)
面试官要求不能使用递归,那我们使用while(l<=r)循环即可
3,给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
(腾讯提前批,字节跳动)
亲身经历的一道题,没写出来(后来登录leetcode发现做过这道题.....)
需要注意: 1,用int表示是否进位,既能起标志作用,又能参与计算
2,别忘了最后两数相加如果进位则新增一个节点值为1的节点放到最后
4,找出两个字符串中最大公共子字符串,如“abccade”,“dgcadde”的最大子串为“cad”.
(腾讯提前批)
这个题目比较高级的理解就是我们列出一个二维矩阵,如果相等标为1,最长的1对角线即为答案,过程利用dp求解
5,反转链表
(大小企业面试中均有出现)
应该熟练掌握递归和迭代两种方法求解,通过画图理解更容易
6,给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
(腾讯提前批,字节跳动)
7,用Rand5()实现Rand7();用Rand7()实现Rand10()
(字节跳动)