<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Winmusic的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Winmusic</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Winmusic]]></copyright><item><title><![CDATA[输入一个字符串，打印出该字符串的所有排列]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163057</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163057</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 04:29:08 +0800</pubDate><description><![CDATA[//字符串中字符不重复，打印字符串所有组合。例如"a,b,c"输出a;b;c;ab;ac;bc;abc
public class StrCombine {
    public static void main(String[] args) {
        String str = "abcd";
        char[] c = str.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (int .]]></description><category></category></item><item><title><![CDATA[输入一个字符串，打印出该字符串的所有排列]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163054</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163054</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 04:27:34 +0800</pubDate><description><![CDATA[//输入一个字符串，打印出该字符串的所有排列；例如输入abc的输出abc；acb；bac；bca；cab；cba
public class StrFullCombine {
    public static void main(String[] args) {
        String str = "abc";
        char[] charArray = str.toCharArray();
        getFullCombine(charArray, 0);
    }

    p]]></description><category></category></item><item><title><![CDATA[二叉树的深度]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163009</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163009</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:55:23 +0800</pubDate><description><![CDATA[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 &gt; l]]></description><category></category></item><item><title><![CDATA[判断二叉树树是否是平衡二叉树]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163007</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163007</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:54:39 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[找树中两个节点最近的公共父节点]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163006</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163006</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:53:19 +0800</pubDate><description><![CDATA[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;
        }
    ]]></description><category></category></item><item><title><![CDATA[找搜索二叉树中第k大的值]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163003</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163003</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:51:26 +0800</pubDate><description><![CDATA[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);
   ]]></description><category></category></item><item><title><![CDATA[将数组中0移动至右端，其他元素相对位置不变。]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163002</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163002</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:49:07 +0800</pubDate><description><![CDATA[package com.arr;
import java.util.Arrays;

/*
{0,2,5,0,0,4,6}-&gt;[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);
   ]]></description><category></category></item><item><title><![CDATA[数组中的奇数放左端，偶数放右端]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108163001</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108163001</guid><author>Winmusic</author><pubDate>Sat, 22 Aug 2020 02:44:27 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[判断一个树是否是搜索二叉树]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108065264</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108065264</guid><author>Winmusic</author><pubDate>Mon, 17 Aug 2020 21:46:27 +0800</pubDate><description><![CDATA[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)) {]]></description><category></category></item><item><title><![CDATA[完全背包问题]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108026096</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108026096</guid><author>Winmusic</author><pubDate>Sat, 15 Aug 2020 17:57:21 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[多重背包问题]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108026087</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108026087</guid><author>Winmusic</author><pubDate>Sat, 15 Aug 2020 17:56:19 +0800</pubDate><description><![CDATA[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[]]]></description><category></category></item><item><title><![CDATA[01背包问题]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108017086</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108017086</guid><author>Winmusic</author><pubDate>Sat, 15 Aug 2020 03:59:06 +0800</pubDate><description><![CDATA[递推公式：

getPakage01()：
从左往右，从上往下插值

getPakage02:

public class Package01 {
//https://blog.youkuaiyun.com/chanmufeng/article/details/82955730
    //#####################################
    public static int getPakage01(int[] w, int[] v, int C) {
        int size ]]></description><category></category></item><item><title><![CDATA[最长回文子串中心扩展和动态规划方法]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108017029</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108017029</guid><author>Winmusic</author><pubDate>Sat, 15 Aug 2020 02:33:48 +0800</pubDate><description><![CDATA[public class LongestPalindrome {
//https://blog.youkuaiyun.com/tiankong_12345/article/details/102018257?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-]]></description><category></category></item><item><title><![CDATA[凑成n元最少需要多少硬币]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/108016839</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/108016839</guid><author>Winmusic</author><pubDate>Sat, 15 Aug 2020 00:59:56 +0800</pubDate><description><![CDATA[有面值分别为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]]></description><category></category></item><item><title><![CDATA[RabbitMQ]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107953562</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107953562</guid><author>Winmusic</author><pubDate>Fri, 14 Aug 2020 13:30:52 +0800</pubDate><description><![CDATA[1.集群模式
1.1 普通集群模式
创建的queue，只会放在一个rabbtimq实例上，每个RabbitMQ实例都同步queue的元数据。读取时访问到了实际数据不在的实例，它会从queue所在实例上拉取数据过来。
没有高可用性。

1.2 镜像集群
创建的queue，无论元数据还是queue里的消息都会存在于多个实例上，然后每次写消息到queue的时候，都会自动把消息到多个实例的queue里进行消息同步。
没有扩展性。

2.

...]]></description><category></category></item><item><title><![CDATA[设计模式-责任链模式]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107925968</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107925968</guid><author>Winmusic</author><pubDate>Tue, 11 Aug 2020 01:22:15 +0800</pubDate><description><![CDATA[用来处理相关事务责任的一条执行链，执行链上有多个节点，每个节点都有机会（条件匹配）处理请求事务，如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。
1. 类图

2. 代码示例

场景

场景
现实中，请假的OA申请，请假天数如果是半天到1天，可能直接主管批准即可；
如果是1到3天的假期，需要部门经理批准；
如果是3天到30天，则需要总经理审批；
大于30天，正常不会批准。


请求类

public class LeaveRequest {
    /**天数*/
   ]]></description><category></category></item><item><title><![CDATA[反转英文句子]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107844453</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107844453</guid><author>Winmusic</author><pubDate>Thu, 06 Aug 2020 16:58:05 +0800</pubDate><description><![CDATA[反转英文句子
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]]></description><category></category></item><item><title><![CDATA[二叉树前、中、后序遍历]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107829402</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107829402</guid><author>Winmusic</author><pubDate>Thu, 06 Aug 2020 00:40:15 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[堆排序（非递归）]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107826106</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107826106</guid><author>Winmusic</author><pubDate>Wed, 05 Aug 2020 21:51:25 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[3个线程顺序打印ABC]]></title><link>https://blog.youkuaiyun.com/Winmusic/article/details/107823788</link><guid>https://blog.youkuaiyun.com/Winmusic/article/details/107823788</guid><author>Winmusic</author><pubDate>Wed, 05 Aug 2020 20:01:34 +0800</pubDate><description><![CDATA[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]]></description><category></category></item></channel></rss>