<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[H__Zhou的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/H__Zhou</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; H__Zhou]]></copyright><item><title><![CDATA[Java设计模式之工厂模式（简单工厂模式和工厂方法模式）]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/90764266</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/90764266</guid><author>H__Zhou</author><pubDate>Tue, 04 Jun 2019 10:24:59 +0800</pubDate><description><![CDATA[工厂模式
工厂模式（Factory Pattern）是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。
在工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。
这里介绍简单工厂模式和工厂方法模式。
简单工厂模式
要点

简单工厂模式也被叫做静态工厂模式，工厂类一般使用静态方法，通过接收的参数不同...]]></description><category></category></item><item><title><![CDATA[23种设计模式和Java实现（目录）]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/90203073</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/90203073</guid><author>H__Zhou</author><pubDate>Tue, 14 May 2019 11:34:18 +0800</pubDate><description><![CDATA[设计模式
简介（摘自runoob.com）
设计模式（Design pattern）代表了最佳的实践，通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更...]]></description><category></category></item><item><title><![CDATA[Java设计模式之单例模式]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/90199298</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/90199298</guid><author>H__Zhou</author><pubDate>Tue, 14 May 2019 10:31:04 +0800</pubDate><description><![CDATA[单例模式

]]></description><category></category></item><item><title><![CDATA[Java工程师笔试题（二）——字符串归并]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/89609608</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/89609608</guid><author>H__Zhou</author><pubDate>Sat, 27 Apr 2019 23:20:29 +0800</pubDate><description><![CDATA[题目描述
设有两个字符串，先需要将两个字符串合并，合并要求如下：
（1）合并后的字符串中包含两个字符串出现过的所有字符
（2）若有重复字符则只保留一个
（3）结果字符串按26个字母顺序排列
如字符串str1为"asdfsfcv" 和 字符串2为 “bgfdAdac”
则输出结果为 “Aabcdfgsv”
算法分析
这里可以用桶排序的思想，遍历字符串，将不同的字符放入不同的“桶”中，得到计数数组。根...]]></description><category></category></item><item><title><![CDATA[Java工程师笔试题（一）——任选三个数字组成满足条件的三位数]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/89609408</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/89609408</guid><author>H__Zhou</author><pubDate>Sat, 27 Apr 2019 23:06:57 +0800</pubDate><description><![CDATA[题目描述
从1，2，3，4，5这五个数中选三个数组成一个三位数，十位数等于百位数和个位数之和，按行输出所有满足条件的三位数。
题目来源： 某公司校招真题
代码
for(int a = 1; a &lt;= 4; a++)
            for (int c = 1; c &lt;= 4 ; c++){
                int b = a + c;
            ...]]></description><category></category></item><item><title><![CDATA[Java实现根据二叉树的前序遍历和中序遍历序列重建二叉树（递归实现）]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/89490408</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/89490408</guid><author>H__Zhou</author><pubDate>Wed, 24 Apr 2019 12:40:29 +0800</pubDate><description><![CDATA[题目描述
题目来源：牛客–剑指offer
输入某二叉树的前序遍历和中序遍历的结果，请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}，则重建二叉树并返回。
分析
根据前序遍历和中序遍历的特点，前序遍历的第一个元素即根节点，在中序序列中该节点的左边为左子树，右边为右子树。
Ja...]]></description><category></category></item><item><title><![CDATA[二维数组中的查找]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/89486087</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/89486087</guid><author>H__Zhou</author><pubDate>Wed, 24 Apr 2019 09:25:34 +0800</pubDate><description><![CDATA[二维数组中的查找
题目来源：牛客-剑指offer
题目描述
在一个二维数组中（每个一维数组的长度相同），每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
从题中得知，每个节点都大于左边，小于下面。所以我们可以从右上角或者左下角开始寻找。以右上角为例，若目标数target 大于节点值，则下移，若小于节...]]></description><category></category></item><item><title><![CDATA[Java——归并排序算法的递归实现]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88839668</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88839668</guid><author>H__Zhou</author><pubDate>Wed, 27 Mar 2019 11:14:22 +0800</pubDate><description><![CDATA[归并排序
归并排序算法采用分治策略，将两个已有序的序列归并为一个更大的有序序列，通过递归思想，层层合并，最终得到一个完整的有序序列。
Java实现
递归排序
    public static void mergeSort(int[] array ,int low , int high){
        if(low &lt; high ){
            int mid = (low...]]></description><category></category></item><item><title><![CDATA[Java——堆排序算法]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88838992</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88838992</guid><author>H__Zhou</author><pubDate>Wed, 27 Mar 2019 10:54:17 +0800</pubDate><description><![CDATA[大根堆和小根堆
堆是一种完全二叉树，每个结点的值都大于或等于其左右孩子结点的值，称为大根堆；或者每个结点的值都小于或等于其左右孩子结点的值，称为小根堆。
堆排序
堆排序是一种选择排序，利用大根堆或小根堆的特性，堆顶的值总是最大或是最小的。以大根堆为例，将n个待排序的元素建立大根堆，弹出堆顶的最大值与堆末尾元素交换，此时末尾就是该序列最大值。再将剩下n-1个元素建立大根堆，继续弹出堆顶最大值与堆末尾...]]></description><category></category></item><item><title><![CDATA[Java——冒泡排序算法与简单优化]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88814393</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88814393</guid><author>H__Zhou</author><pubDate>Tue, 26 Mar 2019 10:35:00 +0800</pubDate><description><![CDATA[冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列，一次比较两个元素，如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换，也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
Java实现
    public static void bubbleSort(int[] array){
        for...]]></description><category></category></item><item><title><![CDATA[Java——直接插入排序算法]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88813483</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88813483</guid><author>H__Zhou</author><pubDate>Tue, 26 Mar 2019 10:02:07 +0800</pubDate><description><![CDATA[直接插入排序
直接插入排序基本思想是每一步将一个待排序的记录，插入到前面已经排好序的有序序列中去，直到插完所有元素为止。
Java实现
    public static void insertSort(int[] array){
        for (int i = 1; i &lt; array.length; i++) {

            for (int j = i ; j ...]]></description><category></category></item><item><title><![CDATA[Java——简单选择排序算法]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88813040</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88813040</guid><author>H__Zhou</author><pubDate>Tue, 26 Mar 2019 09:44:47 +0800</pubDate><description><![CDATA[简单选择排序算法
简单选择排序是一种简单直观的排序算法。每一趟从待排序的记录中选出最小的元素，放入已排好序的序列后，直到全部记录排序完毕。
Java实现
	public static void selectionSort(int[] array){
        for (int i = 0; i &lt; array.length; i++) {
            for (int j ...]]></description><category></category></item><item><title><![CDATA[Java实现二叉树的序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/H__Zhou/article/details/88779131</link><guid>https://blog.youkuaiyun.com/H__Zhou/article/details/88779131</guid><author>H__Zhou</author><pubDate>Sun, 24 Mar 2019 17:42:03 +0800</pubDate><description><![CDATA[Java实现二叉树的序列化与反序列化
二叉树的序列化
二叉树的序列化是指将二叉树的遍历结果按照一定的格式保存为字符串，使得程序在内存中生成的二叉树得以保存，从而实现二叉树的持久化的过程。
二叉树可以通过前序，中序，后序，层次等遍历方式进行遍历输出序列化字符串，结果字符串规定“/”表示一个结点值的结束，以“#/”表示空结点。本文以前序遍历

...]]></description><category></category></item></channel></rss>