递归
递归
jay编程
这个作者很懒,什么都没留下…
展开
-
Java实现二叉搜索树的最近祖先节点
标题:Java实现二叉搜索树的最近祖先节点一、题解1) 方法一:得到两个list执行用时:8 ms, 在所有 Java 提交中击败了14.00% 的用户内存消耗:39.3 MB, 在所有 Java 提交中击败了92.33% 的用户/* 方法一:得到两个list 执行用时:8 ms, 在所有 Java 提交中击败了14.00% 的用户 内存消耗:39.3 MB, 在所有 Java 提交中击败了92.33% 的用户 */ public TreeNode commonBstNode(TreeN原创 2020-11-24 18:04:15 · 140 阅读 · 0 评论 -
Java,实现得到二叉树的最近公共祖先节点
标题:Java,实现得到二叉树的最近公共祖先节点一、方法四种:首先做这个题目,感觉知道这个会比较好://供参考的后序迭代输出二叉树的所有节点//供参考的后序迭代输出二叉树的所有节点public void postOrder(TreeNode head){ if(head == null){ return ; } Deque<TreeNode> s = new LinkedList<>(); s.push(head); while(!s.isEmpty()){原创 2020-11-24 14:46:21 · 551 阅读 · 0 评论 -
得到bst的公共最近祖先节点
标题:得到bst的公共最近祖先节点bst最近公共祖先节点方法一:得到两个list,【通过bst的搜索直接得到list保存父节点的集合】,使用一个for循环important方法二;通过bst的搜索特性,这个递归有点意思,/** * bst最近公共祖先节点 * 方法一:得到两个list,【通过bst的搜索直接得到list保存父节点的集合】,使用一个for循环important * 方法二;通过bst的搜索特性,这个递归有点意思, * * @author dell * */publ原创 2020-11-23 11:40:08 · 127 阅读 · 0 评论 -
java实现判断是否为二叉搜索树
标题:java实现判断是否为二叉搜索树一、分析1)第一种:对于二叉搜索树,首先想到的的是中序遍历,得到的是一个有序序列。所以方法可以是使用中序的递归,非递归进行实现,只要看是否为有序即可。方法一:中序非递归遍历,保存最小值为long cur = Long.MIN_VALUE;每次遍历得到一个节点的值时,比较是否大于当前最小值cur,满足条件则更新当前最小值。/** * 使用非递归实现 迭代版的【非递归中序遍历】,简单,容易实现 * 执行用时:2 ms, 在所有 Java 提交中击败原创 2020-11-20 10:49:03 · 1482 阅读 · 0 评论 -
Java实现填充每个节点的下一个右侧节点指针,针对完美二叉树而言
标题:Java实现填充每个节点的下一个右侧节点指针一、题解方法一:这个题目的题解,首先会想到用广度遍历实现(非递归版本的),不过这个把每一行二叉树的节点当作链表,更有想法,同时也更优/** * 执行用时:0 ms, 在所有 Java 提交中击败了100.00% 的用户内存消耗:38.5 MB, 在所有 Java 提交中击败了88.17% 的用户 * @param head * @return */ public Node hasNext(Node head) { if(head原创 2020-11-16 16:59:40 · 111 阅读 · 0 评论 -
Java实现前序,中序得到二叉树
标题:Java实现前序,中序得到二叉树其实把中序,后序的改一下递归调用的条件就行了可以先了解Java实现通过中序,后序得到二叉树/** * 测试前中 * @author dell * */public class TestPreInOrder { /** *前中 使用递归 *执行用时:5 ms, 在所有 Java 提交中击败了28.63% 的用户内存消耗:38.3 MB, 在所有 Java 提交中击败了96.02% 的用户 * @return */ public Tr原创 2020-11-16 16:51:14 · 190 阅读 · 0 评论 -
Java实现通过中序,后序遍历得到二叉树
标题:Java实现通过中序,后序遍历得到二叉树一、题解方法一:使用递归,很容易想到/** *中后 *执行用时:4 ms, 在所有 Java 提交中击败了45.70% 的用户内存消耗:38.2 MB, 在所有 Java 提交中击败了99.17% 的用户 * @return */ public TreeNode inPostOrder(Integer[] a, Integer[] b, int as, int ae, int bs, int be) { if(as > ae原创 2020-11-16 16:48:03 · 249 阅读 · 0 评论 -
Java实现:最近公共祖先节点
标题:Java实现:最近公共祖先节点一、方法一 ,很容易想到,但不是最优解思想:找到两个满足条件的节点,得到他们的祖先节点1).使用非递归的后序遍历实现【因为先序遍历,直接删节点就行了,不需要后序遍历那么的麻烦,中序也同样】2)eg:栈中为:1-> 2 -> 3 那么说此节点数组中存放的为3,2,1因为 这样才是最近的公共祖先节点【注意:要包含自身】3)最后通过两个for循环,得到TreeNode/* * 使用后序遍历,得到两个链表 * * 执行用时:44 ms,原创 2020-11-13 12:28:51 · 619 阅读 · 0 评论 -
Java那些递归
标题:Java那些递归Java输出字符串全排列原创 2020-10-22 18:02:28 · 81 阅读 · 0 评论 -
Java实现求二叉树的最大深度
标题:Java实现求二叉树的最大深度public class TestMyTreeMaxLength12 { /** * 【递归】 * 执行结果: 通过 显示详情 执行用时:0 ms, 在所有 Java 提交中击败了100.00% 的用户 内存消耗:38.7 MB, 在所有 Java 提交中击败了81.41% 的用户 * @param p */ public int maxLen(IntNode p, int count) { if(p == null) { retu原创 2020-10-22 17:56:03 · 515 阅读 · 0 评论 -
Java实现求二叉树路径总和
标题:Java实现求二叉树路径总和public class TestPathSum02 { /** * 使用广度遍历, * */ public boolean pathSum(TreeNode p, int target) { if(p == null) { return false; } Queue<TreeNode> q = new LinkedList<>(); q.offer(p); while(!q.isEmpty())原创 2020-10-22 17:57:02 · 505 阅读 · 0 评论 -
Java求解对称二叉树
标题:Java求解对称二叉树public class TestSymmetricBinaryTree03 { /** * 使用递归测试对称二叉树 * 思想: * p * 1)p.left == p.right * 2)右子树 对称 左子树 * @param p * @return */ public boolean symmetricBinaryTree(TreeNode p) { if(p == null) { return true; } re原创 2020-10-22 17:58:07 · 81 阅读 · 0 评论 -
Java输出字符串的全排列
标题:Java输出字符串的全排列/** * 全排列 【待续】 * @author dell * */public class TestAllSort { /** * int[] * 输出ABCD后,不会输出AB,只会输出DC * @param s * @param count * @param a */ public void allSort(String s, int count, int[] a) { if(count >= 4) { Syst原创 2020-10-22 17:59:21 · 252 阅读 · 0 评论 -
Java中打印出这个正整数的所有质因数
标题:Java中打印出这个正整数的所有质因数package com.hhh.aa.linux;import java.util.Scanner;import org.junit.Test;/** * @author dell * */public class FirstLinux { /** * 一,在键盘上输入一个正整数,打印出这个正整数的所有质因数 * @param num * @param a */ public void hh(int num,int[]原创 2020-09-29 20:09:12 · 659 阅读 · 0 评论 -
Java用图分析汉诺塔的思路
标题:Java实现汉诺塔汉诺塔也就是求2的n次方-1原创 2020-09-26 21:29:07 · 123 阅读 · 0 评论 -
java解析n阶台阶问题
标题:java解析n阶台阶问题原创 2020-09-26 21:11:48 · 299 阅读 · 0 评论 -
Java中使用欧几里得求最大公约数
标题:Java中使用欧几里得求最大公约数/** * 求最大公约数 * @author dell * */public class TestGcd { public int hh(int m,int n) { if(m<n) { return hh(n,m); }else if(n==0) { return m; }else { return hh(n,m%n); } } @Test public void test() { int hh原创 2020-09-26 21:01:10 · 298 阅读 · 0 评论 -
Java使用递归逆序输出输入的数
标题:Java使用递归逆序输出输入的数public class TestReverseInput { //使用递归 //输入一行,逆序输入 public void reverseInput() { Scanner scanner = new Scanner(System.in); System.out.println("请输入数:"); String str = scanner.nextLine(); //丢弃了\n if(!str.equals("")){ revers原创 2020-09-26 20:58:41 · 809 阅读 · 0 评论 -
Java中判断:是否在一个字符串中,计算在字符中出现的次数 ,删除所有此字符
标题:Java中判断:是否在一个字符串中,计算在字符中出现的次数 ,删除所有此字符/** * a.是否在一个字符串中, * b.计算在字符中出现的次数 * c.删除所有此字符 * @author dell * */public class TestStrContainsChar { /** * a.是否在一个字符串中, * @param s * @param ch * @param index * @return */ boolean hh(String s,ch原创 2020-09-26 20:57:52 · 159 阅读 · 0 评论 -
改进的求x的n次方
标题:改进的求x的n次方public class TestXNPow { public int hh(int x,int n) { if(n==1) { return x; }else if(n==2) { return x*x; }else { return hh(x,2)*hh(x,n-2); } } @Test public void test() { int x=2; int n=5; int hh = this.hh(x, n); Sy原创 2020-09-26 20:56:11 · 99 阅读 · 0 评论 -
java最大子序列求和,时间复杂度n,使用了分治,以及一种巧妙的方法
标题:java最大子序列求和,时间复杂度n,使用了分治,以及一种巧妙的方法题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。一、初级版:Java最大子序列求和二、升级版方法一:首先假设整形数组中最大值>0,故,只要一个for循环遍历,每次sum+=nums[i];若sum<0则继续遍历,若大于0,则比较sun与max,直到循环结束。其次,若整形数组中最大值小于,只要用for循环找出最大值即可。public int max原创 2020-07-23 12:27:24 · 316 阅读 · 0 评论 -
Java给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
标题:Java给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。一、题目:【注:append().append()的速度快于+ 可以直观的感受到】给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。二、题解使用递归和String 20ms/** * 使用递归和String 20ms * @param n * @return */ public String countAndSay(int n)原创 2020-07-21 13:18:53 · 659 阅读 · 0 评论 -
java 最长公共前缀[分治及递归、二分法,普通方法]
标题:java 最长公共前缀[分治及递归、二分法,普通方法]一、题目二、题解方法一:/**方法一 * str与strs[i]比较n此 * @param strs * @return */ public String longestCommonPrefix(String[] strs) { if(null==strs || 0==strs.length) {//短路或,若前面为null,则后面都不需要判断了 return ""; } if(1==strs.leng原创 2020-07-20 11:33:50 · 249 阅读 · 0 评论