输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
摘要:思路:1.hasTree中如果两个树都空 不是子树,否则进入isTree,以及root1左移一个节点继续判断是否子树,root1右移一个节点继续判断// 2.isTree 中如果tree2为空,匹配成功,tree1为空tree2不为空,匹配失败 如果根节点相同,root1和root2分别左移和右移一
阅读全文
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
摘要:// 从上往下打印出二叉树的每个节点,同层节点从左至右打印。// 思路:建立一个队列,初始化插入根节点,当队列不是空时,pop()出来一个节点,将节点值插入list,当节点有左节点,插入query,有右节点,插入query,pop()时候先放入的先弹出,// 插入的子节点一定在父节点后面 publi
阅读全文
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
摘要:思路:1.遍历 public static int GetUglyNumber_Solution1(int index) { if(index<=0) { return 0; } int i=1; ArrayList <Integer> list=new ArrayList<>(); while(l
阅读全文
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法:
摘要:1.target=0 0 2.target=1 1 3.target=2 2 4.target>2 1.2*1竖着放,剩余的有f(target-1)种方法 2.2*1横着放,下面剩余的一块固定,剩下的有f(target-2)种方法 f(target)=f(target-1)+f(target-2)
阅读全文
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行
摘要:思路:递归,扩容 增加一个deep参数,内部list数量与deep相同,每个深度对应一个list 根节点添加到list(deep-1),然后分别对其左右子树递归求每层的节点,深度每到一个孩子+1 import java.util.ArrayList; /* public class TreeNode
阅读全文
整数中1出现的次数
摘要:public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int i=0; int a= (int) Math.pow(10,i); while(a<=n){ i=i+1; a=(int) Math.pow(
阅读全文
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
摘要:绝对最佳答案及分析: public class Solution { public int NumberOf1(int n) { int count = 0; while(n!= 0){ count++; n = n & (n - 1); } return count; } } 答案正确:恭喜!您提
阅读全文
不用if/else swich for while实现累加
摘要:解题思路: 1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0; 3.当n>0时,执行sum+=Sum_Solution(n-1),实现递归计算Sum_Solution(n)
阅读全文
青蛙跳台阶问题
摘要:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法 1 public class test5 { 2 // 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 3 // f(1)=1
阅读全文