![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法&数据结构
Winmusic
这个作者很懒,什么都没留下…
展开
-
输入一个字符串,打印出该字符串的所有排列
//字符串中字符不重复,打印字符串所有组合。例如"a,b,c"输出a;b;c;ab;ac;bc;abcpublic class StrCombine { public static void main(String[] args) { String str = "abcd"; char[] c = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (int .原创 2020-08-22 04:29:08 · 915 阅读 · 0 评论 -
输入一个字符串,打印出该字符串的所有排列
//输入一个字符串,打印出该字符串的所有排列;例如输入abc的输出abc;acb;bac;bca;cab;cbapublic class StrFullCombine { public static void main(String[] args) { String str = "abc"; char[] charArray = str.toCharArray(); getFullCombine(charArray, 0); } p原创 2020-08-22 04:27:34 · 1197 阅读 · 0 评论 -
二叉树的深度
package com.tree;//求二叉树的深度public class TreeDepth { public static int getTreeDepth(TreeNode root){ if(root==null) return 0; int left = getTreeDepth(root.left); int right = getTreeDepth(root.right); return right > l原创 2020-08-22 02:55:23 · 138 阅读 · 0 评论 -
判断二叉树树是否是平衡二叉树
package com.tree;public class IsBalanceTree { public static boolean isBalanceTree(TreeNode root,int[] dep){ if(root==null){ dep[0] = 0; return true; } int[] leftDep = new int[1]; int[] rightDep原创 2020-08-22 02:54:39 · 109 阅读 · 0 评论 -
找树中两个节点最近的公共父节点
package com.tree;public class CommonParent { public static TreeNode commonParent(TreeNode root, TreeNode A, TreeNode B) { if(root==null){ return null; } if(root==A||root==B){ return root; }原创 2020-08-22 02:53:19 · 478 阅读 · 0 评论 -
找搜索二叉树中第k大的值
package com.tree;public class BinarySearchKth { public static TreeNode getBinarySearchKth(TreeNode root, int k) {//中序遍历到第k个返回 TreeNode target = null; if (root.left != null) { target = getBinarySearchKth(root.left, k);原创 2020-08-22 02:51:26 · 561 阅读 · 0 评论 -
将数组中0移动至右端,其他元素相对位置不变。
package com.arr;import java.util.Arrays;/*{0,2,5,0,0,4,6}->[2, 5, 4, 6, 0, 0, 0]将数组中0移动至右端,其他元素相对位置不变。*/public class Zero2ArrRight { public static void main(String[] args) { int[] arr = {0,2,5,0,0,4,6}; setZero2Last(arr);原创 2020-08-22 02:49:07 · 400 阅读 · 0 评论 -
数组中的奇数放左端,偶数放右端
package com.arr;import java.util.Arrays;//将数组的奇数放在数组左边,偶数放在右边public class JiOuSort { public static void main(String[] args) { int[] arr = {3, 1, 4, 2, 5, 6};// getSortedJiOuArr_01(arr);// getSortedJiOuArr_02(arr); S原创 2020-08-22 02:44:27 · 907 阅读 · 0 评论 -
判断一个树是否是搜索二叉树
import java.util.Stack;public class DiDi { static TreeNode pre = null; public static boolean isBinarySearchTree(TreeNode root) {//递归实现 if (root == null) { return true; } if (!isBinarySearchTree(root.left)) {原创 2020-08-17 21:46:27 · 233 阅读 · 0 评论 -
完全背包问题
package com.dongtaiguihua;import java.util.Arrays;//完全背包问题//有n种物品,物品的价值为v[2,4,7];对应的重量w[6,5,10],背包的容量为c = 10,计算包最多装物品的价值?(每个物品可以取无限个)public class PackageCompletely { public static void main(String[] args) { int[] w = {5, 7};//重量 in原创 2020-08-15 17:57:21 · 125 阅读 · 0 评论 -
多重背包问题
package com.dongtaiguihua;import java.util.Arrays;//多重背包问题//有n种物品,物品的价值为 w = {3, 4, 5};对应的重量v = {2, 3, 4},每种物品的数量m = {4, 3, 2},背包的容量为c = 15,计算包最多装物品的价值?(每个物品可取个数有限制)public class PackageMulti { public static void main(String[] args) { int[]原创 2020-08-15 17:56:19 · 161 阅读 · 0 评论 -
01背包问题
递推公式:getPakage01():从左往右,从上往下插值getPakage02:public class Package01 {//https://blog.csdn.net/chanmufeng/article/details/82955730 //##################################### public static int getPakage01(int[] w, int[] v, int C) { int size原创 2020-08-15 03:59:06 · 139 阅读 · 0 评论 -
最长回文子串中心扩展和动态规划方法
public class LongestPalindrome {//https://blog.csdn.net/tiankong_12345/article/details/102018257?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-原创 2020-08-15 02:33:48 · 190 阅读 · 0 评论 -
凑成n元最少需要多少硬币
有面值分别为1,3,5的三种硬币若干,凑成n元最少需要多少硬币?/** * 有面值分别为1,3,5的三种硬币若干,凑成n元最少需要多少硬币? */public class Coins { public static void main(String[] args) { int[] coins = {1, 3, 5}; System.out.println(minCoinNum(coins, 10)); } private static in原创 2020-08-15 00:59:56 · 417 阅读 · 0 评论 -
反转英文句子
反转英文句子public class ReverseSentence { public static void main(String[] args) { System.out.println(reverseSentence("I love you very much")); System.out.println(reverseSentenceStringBuilder("I love you very much")); } public sta原创 2020-08-06 16:58:05 · 493 阅读 · 0 评论 -
二叉树前、中、后序遍历
import java.util.LinkedList;import java.util.List;import java.util.Stack;public class TraversalTree { public static class TreeNode { private TreeNode left; private TreeNode right; private Integer val; public TreeNod原创 2020-08-06 00:40:15 · 89 阅读 · 0 评论 -
堆排序(非递归)
import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] arr = {1, 3, 67, 4, 0, 100, 33}; heapSort(arr); System.out.println(Arrays.toString(arr)); } public static void heapSort(i原创 2020-08-05 21:51:25 · 185 阅读 · 0 评论 -
3个线程顺序打印ABC
package com.imooc.bigdata.hbase.api;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class PintABC {private static vol原创 2020-08-05 20:01:34 · 136 阅读 · 0 评论 -
将一个数组的0移动到数组最后,非0相对位置保持不变。
public static void main(String[] args) { int[] arr = new int[]{1, 0, 0, 5, 0}; setZero2Last(arr); System.out.println(Arrays.toString(arr)); } public static void setZero2Last(int[] array) { int cur = 0; for (int i =原创 2020-08-03 22:21:02 · 437 阅读 · 0 评论 -
对折纸张
同一方向对折纸张n次,凹记为0,凸记录为1。输入 n 输出序列。public class PaperFolding { public static void folding(int n){ paperFolding(1, n, false); } public static void paperFolding(int i, int n, boolean flag){ if (i > n) return; paperFoldi原创 2020-08-03 17:51:14 · 281 阅读 · 0 评论 -
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7show me your code:class Solution { //在中序序列中查找与前序序列首结点相同元素的时候,如果使用 while 循环原创 2020-06-15 18:24:38 · 103 阅读 · 0 评论