<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[code_wxy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/code_wxy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; code_wxy]]></copyright><item><title><![CDATA[二叉树的遍历-Java实现（递归、非递归）]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105858026</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105858026</guid><author>code_wxy</author><pubDate>Thu, 30 Apr 2020 11:33:18 +0800</pubDate><description><![CDATA[二叉树的遍历
二叉树的遍历常分先序遍历、中序遍历、后序遍历


先序遍历：先访问根节点，再访问左子节点，最后访问右子节点
中序遍历：先访问左子节点，再访问跟节点，最后访问右子节点
后序遍历：先访问左子节点，再访问右子节点，最好访问根节点


实现的逻辑分为递归、非递归的逻辑；
#TreeNode结构
public class TreeNode {
    public int val;
    p...]]></description><category></category></item><item><title><![CDATA[LeetCode 892.三锥形体的表面积]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301385</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301385</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:23:31 +0800</pubDate><description><![CDATA[892.三锥形体的表面积

思路：
考虑到每一个立方体能够贡献的表面积和六个面是否有相邻的立方体有关；
第一个思路是遍历每一个立方体，再判断该立方体的四周及上下面是否存在相邻的立方体，每个面不存在就表面积加1
这样的思路实现后的时间复杂度就上去了，相当于时间复杂度是kn^2（k为总的立方体个数，n为格子数），因此耗时13ms；
参考了优秀的题解，有了优化方向；

考虑不遍历每个格子的所有立方体；
...]]></description><category></category></item><item><title><![CDATA[LeetCode 876.链表的中间结点]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301356</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301356</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:21:30 +0800</pubDate><description><![CDATA[876.链表的中间结点

思路：
本题是常见的思路，由于单链表只能从前往后遍历，不能走回头路，所以考虑双指针。
本题的目标是找链表的中间节点，那么考虑两个指针，第一个每次走一步，第二个每次走两步；
当第二个指针为空或者第二个指针的下一步为空，那么第一个指针此时对应的位置就是中间节点位置。
链表问题常见的方法就是多指针方式。
/**
 * Definition for singly-linked l...]]></description><category></category></item><item><title><![CDATA[LeetCode 836.矩形重叠]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301270</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301270</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:17:48 +0800</pubDate><description><![CDATA[836.矩形重叠

思路：
逆向找不重叠的例子，

如图，假如5的位置是第一个长方形，那么：

第二个长方形的右上角只要在1、4、7、8、9区域，就不会重叠。
第二个长方形的左下角只要在1、2、3、6、9区域，就不会重叠。
除此之外的其他情况都是重叠的。

class Solution {
    public boolean isRectangleOverlap(int[] rec1, int[...]]></description><category></category></item><item><title><![CDATA[LeetCode 543.二叉树的直径]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301225</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301225</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:15:02 +0800</pubDate><description><![CDATA[543.二叉树的直径

思路：
综合前面几个二叉树的问题求解方法，最先考虑的就是递归思想。
因为考虑其解决的问题是否可以转换成子问题。
该题目需要求的是二叉树的直径，也就是相距最远的两个节点的距离。
分析得知道，任意一条最远路径都可视为由某个节点为起点，从其左节点和右节点向下遍历的同样的路径拼接而成。
即直径为：左子树的最长路径、右子树的最长路径、经过该节点的最长路径，三者中最大的一个。
经过该节...]]></description><category></category></item><item><title><![CDATA[LeetCode 409.最长回文串]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301196</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301196</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:12:27 +0800</pubDate><description><![CDATA[409.最长回文串

思路：
凡事遇到涉及到大小写字母、以及要计数，都可以考虑26或者52长度的数组
根据题意理解：

只会出现52个字母
回文的意思就是左右对称，则回文字符中最多只有一个字符为奇数
根据给定的字母组成回文，若某个字母是偶数个，那么全部可用
若某个字母是奇数个，那么只用奇数减一个

根据以上分析，则考虑：

先统计每个字母的个数
只要存在的字母，使用其个数为n/2*2个（奇数就是相...]]></description><category></category></item><item><title><![CDATA[LeetCode 289.生命游戏]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301165</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301165</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:10:31 +0800</pubDate><description><![CDATA[289.生命游戏


思路：
从题目的设计来看，要求是根据当前的数组中每个值周边的值来更新当前值，但是前提是都是考虑的周边的原始值，而非更新后的值。
最开始想到的是先拷贝一个数组，但是题目中建议不使用额外空间解决，即在原数组上操作。
首先考虑的解决办法是位运算，因为原始值是int类型，有32位长度，而题中值只为0/1，那么仅仅占用了一个bit。

位运算

原来的第一位不改变，用第二位保存更新后的...]]></description><category></category></item><item><title><![CDATA[LeetCode 169.多数元素]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301142</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301142</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:08:09 +0800</pubDate><description><![CDATA[169.多数元素

思路一：
适用哈希映射（HashMap）来实现，key表示数组的元素，value表示各元素出现的次数，然后找到出现次数最大的一个或者，找到第一次超过n/2次的元素。
class Solution {
    public int majorityElement(int[] nums) {
        int mid = nums.length / 2;
        Ma...]]></description><category></category></item><item><title><![CDATA[LeetCode 136.只出现一次的数字]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301105</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301105</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:06:10 +0800</pubDate><description><![CDATA[136.只出现一次的数字

思路
首先想到了的是遍历依次去判断，或者使用set集合来处理，但是题目中提示能够不使用额外空间吗？
想了一会儿没想到有什么办法，看了下别人分享的解析，用到了位操作里的异或操作：

如果我们对 0 和二进制位做 XOR 运算，得到的仍然是这个二进制位

a  ^ 0 = a


如果我们对相同的二进制位做 XOR 运算，返回的结果是 0

a  ^ a = 0


XOR...]]></description><category></category></item><item><title><![CDATA[LeetCode 104. 二叉树的最大深度]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301069</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301069</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:04:05 +0800</pubDate><description><![CDATA[104. 二叉树的最大深度

思路：
递归的方法：
需要得到二叉树的最大深度，其中每个节点的深度等于子节点的深度加上1。
因此在只需要从根节点开始找子节点中最大深度，依次相加。
时间复杂度：O(n)
空间复杂度：最差O(n),最优O(log(n))，最差是全为左/右子树，最优是完全平衡二叉树
/**
 * Definition for a binary tree node.
 * public c...]]></description><category></category></item><item><title><![CDATA[LeetCode 101.对称二叉树]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105301015</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105301015</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 21:02:06 +0800</pubDate><description><![CDATA[101.对称二叉树
题目：

思路：

递归思路：

镜像对称，就是从根节点依次往下
比较左子树的左子树值是不是和右子树的右子树的值相等，并且左子树的右子树值是不是和右子树的左子树的值相等
全部相等即可



/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     Tre...]]></description><category></category></item><item><title><![CDATA[LeetCode 88.合并两个有序数组]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105300971</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105300971</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 20:59:24 +0800</pubDate><description><![CDATA[88.合并两个有序数组
题目
给定两个有序整数数组 nums1 和 nums2，将 nums2 合并到 nums1 中，使得 num1 成为一个有序数组。
说明:
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
你可以假设 nums1 有足够的空间（空间大小大于或等于 m + n）来保存 nums2 中的元素。
示例:
输入:
nums1 = [1,2,3,0,0,0], m ...]]></description><category></category></item><item><title><![CDATA[LeetCode 67.二进制求和]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105300948</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105300948</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 20:58:00 +0800</pubDate><description><![CDATA[67.二进制求和
题目：
给定两个二进制字符串，返回他们的和（用二进制表示）。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”
思路：


思路一：
考虑到从末尾开始相加计算，有需要进位的到下一位再加1的思路。
将字符串转为char数组，...]]></description><category></category></item><item><title><![CDATA[LeetCode 66.加一]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105300922</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105300922</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 20:55:45 +0800</pubDate><description><![CDATA[66.加一
题目：
给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一。
最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外，这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 432...]]></description><category></category></item><item><title><![CDATA[LeetCode 8.字符串转换整数 (atoi)]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/105300090</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/105300090</guid><author>code_wxy</author><pubDate>Fri, 03 Apr 2020 20:45:35 +0800</pubDate><description><![CDATA[8.字符串转换整数 (atoi)

思路：
本地需要注意的是识别正负号和数字，以及越界的问题，因为int型只有31位的长度。
开始考虑使用正则将数字部分提取出来，再使用Integer.parseInt()对数字字符串部分进行转换，若报异常，则返回int型的最大或者最小值，但是此方法还是不好判断越界的临界值的正负号情况。
则思考怎么判断越界的问题？
常用的处理字符串转数字是否越界的方式就是遍历数字字...]]></description><category></category></item><item><title><![CDATA[关于LSTM的神经元数及参数个数]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/100887492</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/100887492</guid><author>code_wxy</author><pubDate>Mon, 16 Sep 2019 14:49:57 +0800</pubDate><description><![CDATA[...]]></description><category></category></item><item><title><![CDATA[鲁棒性、泛化 的解释和区别]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/100562716</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/100562716</guid><author>code_wxy</author><pubDate>Thu, 05 Sep 2019 17:39:40 +0800</pubDate><description><![CDATA[鲁棒性：

鲁棒是Robust的音译，也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的关键。
在深度学习中常用于形容算法模型，当说算法模型具有鲁棒性时，表明对这个算法模型而言，一些异常的数据对整体的性能影响不大或者基本没有影响。

泛化能力

泛化能力指算法模型对未知数据的预测能力。
学习的目的是学到隐含在数据背后的规律，对具有同一规律的学习集以外的数据经过训练的网络也能给出合适的输出，该...]]></description><category></category></item><item><title><![CDATA[git默认不区分文件名大小写]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/100536548</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/100536548</guid><author>code_wxy</author><pubDate>Wed, 04 Sep 2019 12:16:22 +0800</pubDate><description><![CDATA[git 默认对于文件名大小写是不敏感的
当修改了文件名字母大写或者小些,但是git 并没有发现代码任何改动.
让 git 识别文件名大小写变化：
$ git config core.ignorecase false


...]]></description><category></category></item><item><title><![CDATA[Markdown 语法介绍]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/88820580</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/88820580</guid><author>code_wxy</author><pubDate>Tue, 26 Mar 2019 14:59:33 +0800</pubDate><description><![CDATA[1 Markdown 语法介绍1.1 标题1.2 锚点1.3 引用1.4 列表1.5 代码1.6 强调1.7 自动链接1.8 表格1.9 分割线1.10 图片1.11 流程图1.12 时序图1.13 甘特图
Markdown 语法介绍
Markdown 是一种轻量级标记语言，让写作者专注于写作而不用关注样式。Coding 的许多版块均采用了 Markdown 语法，比如冒泡、讨论、Pull R...]]></description><category></category></item><item><title><![CDATA[java读取txt文件乱码解决方案]]></title><link>https://blog.youkuaiyun.com/code_wxy/article/details/88820051</link><guid>https://blog.youkuaiyun.com/code_wxy/article/details/88820051</guid><author>code_wxy</author><pubDate>Tue, 26 Mar 2019 14:50:19 +0800</pubDate><description><![CDATA[2017年09月19日 14:42:52
					sysmedia
						阅读数：2421
										
				
									
			
		
	
	
		
								            
						

因为txt默认的选项是ANSI，即GBK编码。GBK和GB2312都是中文编码，在这里解释一...]]></description><category></category></item></channel></rss>