剑指offer
崔雨田
这个作者很懒,什么都没留下…
展开
-
剑指offer 41
/** * 使用滑动窗口技术, 定义两个指针, 每次计算指针所在窗口中的元素和, 然后与宿sum, * 对比。根据对比的结果在 移动两个指针 * * @param sum * @return */ public static ArrayList<ArrayList<Integer>> FindContinuousSequence(int sum) { ArrayList<ArrayList&..原创 2020-08-19 23:23:20 · 94 阅读 · 0 评论 -
剑指 offer(栈的压入、弹出序列)、栈
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)模拟题Codeimport java.util.ArrayList;import java.util.Stack;public class Solution {public boolean原创 2020-05-31 23:24:33 · 60 阅读 · 0 评论 -
剑指 offer(对称二叉树)、二叉树、递归
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路直接根据该二叉树是否镜像即可判断Code/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/publ原创 2020-05-30 21:16:44 · 69 阅读 · 0 评论 -
剑指 offer( 二叉树的镜像)、二叉树、递归
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路使用递归, 遇到二叉树就直接交换左右子树Code/**public class TreeNode { int val = 0; TreeNode left = null;原创 2020-05-30 21:13:48 · 60 阅读 · 0 评论 -
剑指 offer(从上往下打印二叉树)、二叉树、递归
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路1、二叉树的层序遍历2、BFS 队列层序访问Codeimport java.util.ArrayList; import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; publi原创 2020-05-30 21:11:03 · 140 阅读 · 0 评论 -
剑指 offer(二叉搜索树的后序遍历序列)、二叉搜索树、递归
题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。概念1、二叉搜索树一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。2、特点中序遍历就是其节点的排序思路:二叉搜索树的中序遍历结果就是该树所有节点的升序排列Code原创 2020-05-30 21:07:09 · 88 阅读 · 0 评论 -
剑指 offer(二叉搜索树的后序遍历序列)、二叉树、递归
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。概念1、二叉搜索树一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。2、特点中序遍历就是其节点的排序思路BST的后序序列的合法序列是,对于一个序列S,最后一个元素原创 2020-05-30 21:01:58 · 84 阅读 · 0 评论