剑指offer
剑指offer
蛋黄派吖
这个作者很懒,什么都没留下…
展开
-
面试题34二叉树中和为某一值的路径
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:有一点要注意的是它的路径是要到叶子节点的。所以这题有点像千禧遍历,定义一个sum来记录当前的和是多少,然后递归。但到达叶子节点,就判断一下和是否达到要求,达到了就可以加入到结果集...原创 2020-04-01 13:21:42 · 136 阅读 · 0 评论 -
面试题33二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。样例:5,7,6,9,11,10,8 true7,4,6,5 false思路:二叉搜索树(二叉查找树),满足左节点比根节点小,右节点比根节点大,它的左右子树也是二叉查找树。根据以上性质:从后往前遍历数组,找到比根节点小的节点,根节点就是数...原创 2020-03-31 14:16:58 · 159 阅读 · 0 评论 -
面试题31栈的压入弹出序列
面试题31栈的压入弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:这题需要遍历两个数组,第一个数组是压入的数组,按顺...原创 2020-03-30 14:01:18 · 254 阅读 · 0 评论 -
连续子数组的最大和
面试题42连续子数组的最大和题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一...原创 2020-03-22 22:01:51 · 134 阅读 · 0 评论 -
两链表(有环没环)相交的第一个节点
思路:两链表相交找节点总的思路是,如果相交了链表的尾部元素是相同的。可以采用栈来做,但空间复杂度高。首先需要判断两个链表有没有环,有就把入节点返回。采用快慢指针,当相遇了,快指针会到头节点也像慢指针一样走,再次相遇就是入节点,推数学公式可以验证。如果两链表没有环,先把两链表长度算出来,分别为len1和len2.长链表先走len1-len2的差值,然后再一起走,相遇了就返回节点,否者返回nul...原创 2020-03-22 15:02:25 · 168 阅读 · 0 评论 -
剑指offer 面试题26树的子结构
剑指offer 面试题26树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:数还有子树,那肯定是用递归写比较方便了。题目要做的是从A 中找B ,所以需要遍历一遍A树并且寻找A中与B的头节点相等的那个节点,找到这个节点后就遍历A树和B树,看是否相等。第二个方法的递归结束条件分为三种:一:B是空的了,即意味着所有父节点都相等,所以可...原创 2020-03-19 12:45:42 · 141 阅读 · 0 评论 -
正则表达式匹配
正则表达式匹配题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配思路:这题需要用到递归去写,大佬可以使用动态规划。主要难点是在于号的匹配它有两种情况...原创 2020-03-11 13:20:37 · 194 阅读 · 0 评论 -
链表中倒数第K个节点
链表中倒数第K个节点输入一个链表,输出该链表中倒数第k个结点。思路:这题可以用两个指针来做。一开始两指针都指向头节点,一个指针先走k步,然后两个指针再一起走,当第一个指针等于空时,即到了尾节点的next,这是第二指针刚好到达倒数第k个。这里要注意三种边界条件一、给的head是空二、k 的值大于整个链表的长度三、k为0package 高质量的代码;public class 链表中倒...原创 2020-03-13 11:45:24 · 140 阅读 · 0 评论 -
面试题23链表中环的入口节点
面试题23链表中环的入口节点题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:这题主要由三个步骤。这题明显要遍历链表,但一个指针又无法解决问题,所以可以使用快慢指针来做。第一步:判断链表是否有环。这用快慢指针就可以解决,p1走一步,p2走两步,如果有环的话这两个指针肯定会相遇。如果p2为空时,说明链表没有环。第二步:如何获取入口节点。同样使用两个指针...原创 2020-03-16 15:24:24 · 181 阅读 · 0 评论