经典面试编程题目
文章平均质量分 66
YeBobr
这个作者很懒,什么都没留下…
展开
-
1.最长递增子序列
LeetCode 300:Longest Increasing Subsequence1.题目描述: 给定一个无序数组,找到最长的递增子序列(这个递增序列可以不连续),输出它的长度(可能存在很多个递增序列,这里只需要输出长度即可)例如: 要求:时间复杂度为O(n^2) 输入:[10,9,2,5,3,7,101,18] 输出:4。。。最长递增子...原创 2018-04-08 19:53:56 · 308 阅读 · 0 评论 -
3.TopK问题三种解决办法(包含二分法解法)(头条、网易面试题)
1.根据快排中使用的分治法partition函数进行判断。 A.如果partition返回值index<k,那么在索引index+1 -> high使用分治法。 B.如果partition返回值index>=k,那么在索引low -> index-1使用分治法。 C.直到index = k - 1,返回下标为k-1数字。 时间复杂度O(n),空间复杂...原创 2018-04-23 10:37:23 · 1143 阅读 · 0 评论 -
2.判断一个二叉树是否是二叉搜索树(腾讯面试题)
1.面试的时候当面试官提出来的时候,我立马想到的就是基于前序遍历的递归方法。但是这个方法在面试官给说一个测试用例的时候就彻底傻眼了。public class Main { public static boolean isSerchBTree(TreeNode root) { if(root == null)return false; return search(root.left)&a...原创 2018-04-18 19:21:18 · 2291 阅读 · 0 评论 -
4.阿里巴巴2018春招编程题目(算法)
1.题目描述:三年二班的同学们要去郊游了,他们决定所有人都从一个地方出发,但是每个人都要有不同的路线,最终完成一次郊游,所以他们想知道,在他们的公园里,究竟有多少种不同的路线供选择。公园可以被描述为一个具有n个结点,M个有向变图,你要做的任务就是选择某个点,使得从这个点出发能够得到最多的路线。提示:此处可以利用node代表结点的总数,结点编号为0到node-1。edge用来描述边,你的程序应该返回...原创 2018-05-12 12:28:09 · 1673 阅读 · 2 评论 -
5.判断一棵树是否是平衡二叉树
平衡二叉树:如果某个二叉树中的任意节点的左右子树的深度相差不超过1。解题思路:我们可以根据后序遍历的思想来考虑。如果一个节点的左右子树的高度不超过1,并且左右子树的高度值不是-1,我们就把高度值返回上一个节点,否则我们返回值-1。如果最后到根节点的返回值是-1的话我们就判断此二叉树为非平衡二叉树,否则为平衡二叉树。Java 代码如下:public class Main{ public bo...原创 2018-05-18 20:03:39 · 437 阅读 · 0 评论 -
6.字符串反转(京东面试题目)
1.题目描述:(京东面试题)给定一个字符串,字符串是由空格和字母组成。我们现在需要做的是把字符串反转,但是保证两个空格间的字母顺序不变。例如“#I##am#a##student.##”->"##student.##a#am##I#"。其中“#”表示空格。(注意和剑指offer第58题的区别!【单词直接只有一个空格】)2.解题思路:我们首先可以整体把字符串反转,然后再根据空格的位置来判断单词起...原创 2018-05-27 21:58:27 · 437 阅读 · 0 评论 -
7.最长不含重复字符的子字符串(搜狗面试)
1.问题描述:从给定的字符串中找到最长不含重复字符的子字符串,返回该子字符串的长度。假设字符中只有‘a-z’.例如“asadsfgdf”的最长子字符串是“adsfg ”应该返回 5。方法1.解题思路:我们可以创建一个26大小的一维数组,这个数组用于存储,各个字母出现的次数,一旦有字母出现两次,我么就记下长度,并且可最大的长度比较,把到目前为止最长的子字符串的长度存起了。同时把上面数组清零,开始...原创 2018-06-04 21:55:47 · 612 阅读 · 0 评论 -
8.队列中的最大值
1.题目描述:给定一个数组和滑动窗口的最大值,找出所有滑动窗口中的最大值。例如 nums = [2,5,3,6,4,8,5,6,9,7],window = 4 则结果为 res = [6, 6, 8, 8, 8, 9, 9].2.解题思路:我们创建一个队列用于存储值的索引。如果新进入队列的值比队列中已有下标对应的数字大的话,这些小的值不可能成为最大值,我们把它们从队列中移除,如果新进入队列的值比队...原创 2018-06-06 14:11:53 · 469 阅读 · 0 评论 -
9.树中两个节点的最低公共祖先
1.当树为搜索二叉树时候。a. 我们可以根据节点值的大小递归判断。如果根节点大于给定的两个节点值的话,我们就在根节点的左子树里找,如果根节点的值大于给定的两个节点值的话,在根节点的右子树里边找。b. Java代码:public class Main { /*当树为二叉树的时候,当二叉树是搜索二叉树的时候,假设两个节点都存在二叉树中*/ public static TreeNode lowest...原创 2018-06-07 22:01:19 · 234 阅读 · 0 评论