<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Coder_xh的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Coder_xh</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Coder_xh]]></copyright><item><title><![CDATA[算法——0-1背包问题]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/89839999</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/89839999</guid><author>Coder_xh</author><pubDate>Sun, 05 May 2019 10:06:25 +0800</pubDate><description><![CDATA[题目描述
有一个容量为 N 的背包，要用这个背包装下物品的价值最大，这些物品有两个属性：体积 w 和价值 v。
解题思路
记忆化搜索
/// 背包问题
/// 记忆化搜索
/// 时间复杂度: O(n * C) 其中n为物品个数; C为背包容积
/// 空间复杂度: O(n * C)
public class Solution {

    private int[][] memo;

    p...]]></description><category></category></item><item><title><![CDATA[Android 作业：简单计算器实现]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88960561</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88960561</guid><author>Coder_xh</author><pubDate>Mon, 01 Apr 2019 12:07:00 +0800</pubDate><description><![CDATA[image.png

思路

首先设计界面，activity_main.xml
计算器界面，需要：文本框TextView——显示数字；数字、符号按钮Button

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;GridLayout  xmlns:android="http://schemas.a...]]></description><category></category></item><item><title><![CDATA[JSP 课后作业：编写 Tag 文件计算矩形、圆形面积]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888599</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888599</guid><author>Coder_xh</author><pubDate>Tue, 26 Mar 2019 10:58:00 +0800</pubDate><description><![CDATA[题目
编写两个 Tag 文件 Rect.tag 和 Circle.tag。Rect.tag 负责计算并显示矩形的面积，Circle.tag 负责计算并显示圆的面积。编写一个 JSP 页面 lianxi6.jsp，该 JSP 页面使用Tag标记调用 Rect.tag 和Circle.tag。调用 Rect.tag 时，向其传递矩形的两个边的长度；调用 Cir...]]></description><category></category></item><item><title><![CDATA[JSP 课后作业：编写 Tag 文件计算三角形面积]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888591</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888591</guid><author>Coder_xh</author><pubDate>Tue, 26 Mar 2019 10:38:00 +0800</pubDate><description><![CDATA[题目
书本 p59 第 7 题
编写一个 Tag 文件 GetArea.tag 负责求出三角形面积，并使用 variable 指令返回三角形的面积给调用该Tag 文件的 JSP 页面。JSP 页面负责显示 Tag 文件返回的三角形的面积。JSP 在调用 Tag 文件时，使用 attribute 指令将三角形三边的长度传递给 Tag 文件。one.jsp 和...]]></description><category></category></item><item><title><![CDATA[40. 数组中只出现一次的数字]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88889077</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88889077</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:43:00 +0800</pubDate><description><![CDATA[题目描述
一个整型数组里除了两个数字之外，其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。
化简问题（只有一个不同的）
在一个整数数组中，除了一个数之外，其他的数出现的次数都是两次，求出现一次的数，要求时间复杂度尽可能的小。例如数组{1,2,2,3,3,6,6},出现一次的数是1.
从题目的描述可以看出，数组中只有一个数字出现了一次，其他的数...]]></description><category></category></item><item><title><![CDATA[39. 平衡二叉树]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888597</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888597</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:43:00 +0800</pubDate><description><![CDATA[题目描述
判断是否平衡二叉树 - &gt;左右子树高度差不超过 1。
代码实现
public class Solution {
    boolean isBalance = true;
    public boolean IsBalanced_Solution(TreeNode root) {
        high(root);
        r...]]></description><category></category></item><item><title><![CDATA[26. 二叉搜索树与双向链表]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88890115</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88890115</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入一棵二叉搜索树，将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点，只能调整树中结点指针的指向。
解题思路
代码实现
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    pub...]]></description><category></category></item><item><title><![CDATA[34. 字符流中第一个不重复的字符]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88889817</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88889817</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
在一个字符串(0&lt;=字符串长度&lt;=10000，全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1（需要区分大小写）.
解题思路
最直观的解法是使用 HashMap 对出现次数进行统计，但是考虑到要统计的字符范围有限，因此可以使用整型数组代替 HashMap。
代码实现
public int First...]]></description><category></category></item><item><title><![CDATA[35. 数组中的逆序对]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88889079</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88889079</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
在数组中的两个数字，如果前面一个数字大于后面的数字，则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
解题思路
暴力解法
顺序扫描整个数组，每扫描到一个数字的时候，逐个比较该数字和它后面的数字的大小。如果后面的数字比它小，则这两个数字就组成一个逆...]]></description><category></category></item><item><title><![CDATA[36. 两个链表的第一个公共节点]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88889075</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88889075</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入两个链表，找出它们的第一个公共结点。





image.png

代码实现
思路一
开始遍历两遍链表获取两个表的长度，比较长度让长的一个先走差值个步长，
再两个一起走。（快慢指针思想，也是链表问题的一般性思路）
public class Solution {
    public ListNode FindFirstCommonNode(...]]></description><category></category></item><item><title><![CDATA[30. 连续子数组的最大和]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888885</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888885</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
{6, -3, -2, 7, -15, 1, 2, 2}，连续子数组的最大和为 8（从第 0 个开始，到第 3 个为止）。
代码实现
public class Solution {
    public int FindGreatestSumOfSubArray(int[] nums) {
    if (nums.length==0 || nu...]]></description><category></category></item><item><title><![CDATA[27. 字符串的排列]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888884</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888884</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
解题思路
           这一段就是回溯法，这里以"abc"为例

       ...]]></description><category></category></item><item><title><![CDATA[37. 数字在排序数组中出现的次数]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888596</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888596</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
统计一个数字在排序数组中出现的次数。
代码实现
public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        if(array==null || array.length&lt;=0)
            return 0;
      ...]]></description><category></category></item><item><title><![CDATA[33. 丑数]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888595</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888595</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
把只包含质因子2、3和5的数称作丑数（Ugly Number）。例如6、8都是丑数，但14不是，因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
解题思路
方法二：创建数组保存已经找到的丑数，用空间换时间的解法：
前面的算法之所以效率低，很大程度上是因为不管一个数是不是丑数我们对它都要作计算。接下来我们试着找...]]></description><category></category></item><item><title><![CDATA[31. 从 1 到 n 整数中 1 出现的次数]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888594</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888594</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
求出 1 ~ 13 的整数中1出现的次数,并算出 100 ~ 1300 的整数中1出现的次数？为此他特别数了一下 1 ~ 13 中包含1的数字有 1、10、11、12、13 因此共出现 6 次,但是对于后面问题他就没辙了。ACMer 希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中 1 出现的次数（从1 到 n 中1出现的次数...]]></description><category></category></item><item><title><![CDATA[38. 二叉树的深度]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888590</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888590</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入一棵二叉树，求该树的深度。从根结点到叶结点依次经过的结点（含根、叶结点）形成树的一条路径，最长路径的长度为树的深度。
代码实现
public class Solution {
    public int TreeDepth(TreeNode root) {
        return root == null ? 0 : Math.max...]]></description><category></category></item><item><title><![CDATA[32. 把数组排成最小的数]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888589</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888589</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入一个正整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。例如输入数组 {3，32，321}，则打印出这三个数字能排成的最小数字为 321323。
解题思路
可以看成是一个排序问题，在比较两个字符串 S1 和 S2 的大小时，应该比较的是 S1+S2 和 S2+S1 的大小，如果 S1+S2 &lt; S2+S1...]]></description><category></category></item><item><title><![CDATA[29. 最小的 K 个数]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888588</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888588</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
输入n个整数，找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字，则最小的4个数字是1,2,3,4,。
解题思路
大小为 K 的最小堆

复杂度：O(NlogK) + O(K)
特别适合处理海量数据

应该使用大顶堆来维护最小堆，而不能直接创建一个小顶堆并设置一个大小，企图让小顶堆中的元素都是最小元素。
维护一个大小为 K 的...]]></description><category></category></item><item><title><![CDATA[28. 数组中出现次数超过一半的数字]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88888584</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88888584</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:42:00 +0800</pubDate><description><![CDATA[题目描述
数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
解题思路
多数投票问题，可以利用 Boyer-Moore Majority Vote Algorithm 来解决这个问题，使得时间复杂度...]]></description><category></category></item><item><title><![CDATA[23. 二叉搜索树的后序遍历]]></title><link>https://blog.youkuaiyun.com/Coder_xh/article/details/88889816</link><guid>https://blog.youkuaiyun.com/Coder_xh/article/details/88889816</guid><author>Coder_xh</author><pubDate>Thu, 14 Mar 2019 12:41:00 +0800</pubDate><description><![CDATA[题目描述
输入一个整数数组，判断该数组是不是某二叉搜索树的后序遍历的结果。假设输入的数组的任意两个数字都互不相同。





image.png

解题思路
性质：


二叉排序树的性质：左子树上所有节点的值均小于它的根节点；右子树上所有节点的值均大于它的根节点。

二叉排序树后序遍历的性质：序列最后一个数字是根节点，序列剩余部分分成两部分，前一部分是左子...]]></description><category></category></item></channel></rss>