<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[熊七七の专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linlinno</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linlinno]]></copyright><item><title><![CDATA[3. 无重复字符的最长子串]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/104274998</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/104274998</guid><author>linlinno</author><pubDate>Wed, 12 Feb 2020 11:52:36 +0800</pubDate><description><![CDATA[【题目链接】https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
【思想】
初始时，字符串 S 的无重复字符的最长子串在 ij 区间[0,0]，探索子串在 mn 区间也是[0,0]
尝试向 mn 中逐一添加 S 中的字符
添加成功（ mn 中本不包含该字符），则扩大mn，并判断扩大后的 mn...]]></description><category></category></item><item><title><![CDATA[2. 两数相加]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/104264815</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/104264815</guid><author>linlinno</author><pubDate>Wed, 12 Feb 2020 10:57:46 +0800</pubDate><description><![CDATA[【题目链接】https://leetcode-cn.com/problems/add-two-numbers/
【思想】
两个list上的节点依次拿下来相加，和成为结果list的节点
注意两个list可能不一样长，甚至其中一个是null
注意进位的处理，不要忘记两个list都加完之后最高位可能还有一个进位
【Java代码】
public class ListNode {
    int val;
...]]></description><category></category></item><item><title><![CDATA[1.两数之和]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/104264467</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/104264467</guid><author>linlinno</author><pubDate>Tue, 11 Feb 2020 16:09:25 +0800</pubDate><description><![CDATA[【题目链接】https://leetcode-cn.com/problems/two-sum
【思想】简单粗暴双层for循环
【Java代码】
    public int[] twoSum01(int[] nums, int target) {
        for (int i = 0; i &lt; nums.length; i++) {
            for (int j = ...]]></description><category></category></item><item><title><![CDATA[Java并发编程：volatile关键字解析]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/74025365</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/74025365</guid><author>linlinno</author><pubDate>Sat, 01 Jul 2017 09:26:02 +0800</pubDate><description><![CDATA[作者：海子　　

出处：http://www.cnblogs.com/dolphin0520/





Java并发编程：volatile关键字解析
　　 volatile这个关键字可能很多朋友都听说过，或许也都用过。在Java 5之前，它是一个备受争议的关键字，因为在程序中使用它往往会导致出人意料的结果。在Java 5之后，volatile关键字才得以重获生机。
　　vol]]></description><category></category></item><item><title><![CDATA[详解C中volatile关键字]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/74025340</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/74025340</guid><author>linlinno</author><pubDate>Sat, 01 Jul 2017 09:14:41 +0800</pubDate><description><![CDATA[原文链接：http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html
volatile提醒编译器它后面所定义的变量随时都有可能改变，因此编译后的程序每次需要存储或读取这个变量的时候，都会直接从变量地址中读取数据。如果没有volatile关键字，则编译器可能优化读取和存储，可能暂时使用寄存器中的值，如果这个变量由别的程序更]]></description><category></category></item><item><title><![CDATA[【剑指offer】二叉树的层次遍历 II]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73849001</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73849001</guid><author>linlinno</author><pubDate>Wed, 28 Jun 2017 15:48:53 +0800</pubDate><description><![CDATA[描述：
给出一棵二叉树，返回其节点值从底向上的层次序遍历（按从叶节点所在层到根节点所在的层遍历，然后逐层从左往右遍历）


样例：

给出一棵二叉树 {3,9,20,#,#,15,7},
    3
   / \
  9  20
    /  \
   15   7
按照从下往上的层次遍历为：
[
  [15,7],
  [9,20],
  [3]
]




Java]]></description><category></category></item><item><title><![CDATA[【剑指offer】二叉树的前序遍历]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73848979</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73848979</guid><author>linlinno</author><pubDate>Wed, 28 Jun 2017 15:47:07 +0800</pubDate><description><![CDATA[描述：
给出一棵二叉树，返回其节点值的前序遍历。


样例

给出一棵二叉树 {1,#,2,3},
   1
    \
     2
    /
   3

 返回 [1,2,3].


Java代码：
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *  ]]></description><category></category></item><item><title><![CDATA[【剑指offer】二叉树的中序遍历]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73848954</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73848954</guid><author>linlinno</author><pubDate>Wed, 28 Jun 2017 15:45:30 +0800</pubDate><description><![CDATA[描述：
给出一棵二叉树,返回其中序遍历
样例：

给出二叉树 {1,#,2,3},
   1
    \
     2
    /
   3
返回 [1,3,2].



Java代码：
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public ]]></description><category></category></item><item><title><![CDATA[【剑指offer】螺旋矩阵]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73848891</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73848891</guid><author>linlinno</author><pubDate>Wed, 28 Jun 2017 15:40:54 +0800</pubDate><description><![CDATA[描述：
给定一个包含 m x n 个要素的矩阵，（m 行, n 列），按照螺旋顺序，返回该矩阵中的所有要素。
样例：
给定如下矩阵：



[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

应返回 [1,2,3,6,9,8,7,4,5]。


Java代码：
public class Solution {
    /**
     ]]></description><category></category></item><item><title><![CDATA[【剑指offer】将二叉查找树转换成双链表]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73848822</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73848822</guid><author>linlinno</author><pubDate>Wed, 28 Jun 2017 15:38:43 +0800</pubDate><description><![CDATA[描述：
将一个二叉查找树按照中序遍历转换成双向链表。
样例：

给定一个二叉查找树：
    4
   / \
  2   5
 / \
1   3

返回 12345。



Java代码：
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     publ]]></description><category></category></item><item><title><![CDATA[【剑指offer】二叉树的后序遍历]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73730565</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73730565</guid><author>linlinno</author><pubDate>Sun, 25 Jun 2017 23:04:10 +0800</pubDate><description><![CDATA[描述：
给出一棵二叉树，返回其节点值的后序遍历。
样例：

给出一棵二叉树 {1,#,2,3},
   1
    \
     2
    /
   3
返回 [3,2,1]



java 代码：
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     ]]></description><category></category></item><item><title><![CDATA[在Java中如何使用transient]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73610874</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73610874</guid><author>linlinno</author><pubDate>Thu, 22 Jun 2017 20:41:19 +0800</pubDate><description><![CDATA[Java语言的transient不像class、synchronized和其他熟悉的关键字那样众所周知，因而它会出现在一些面试题中。这篇文章我将为大家讲解transient。

transient的用途

Q：transient关键字能实现什么？

A：当对象被序列化时（写入字节序列到目标文件）时，transient阻止实例中那些用此关键字声明的变量持久化；当对象被反序列化时（从源文件]]></description><category></category></item><item><title><![CDATA[【剑指offer】字符串置换]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73558872</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73558872</guid><author>linlinno</author><pubDate>Thu, 22 Jun 2017 10:10:18 +0800</pubDate><description><![CDATA[描述：

给定两个字符串，请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。

置换的意思是，通过改变顺序可以使得两个字符串相等。

样例：

"abc" 为 "cba" 的置换。
"aabc" 不是 "abcc" 的置换。




Java代码：

字符串a,b的每一个字符都哈希到一个map里，a的字符加1，b的字符减1，统计为0 的时候删除字符，最后判]]></description><category></category></item><item><title><![CDATA[【剑指offer】克隆二叉树]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73530676</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73530676</guid><author>linlinno</author><pubDate>Wed, 21 Jun 2017 11:58:34 +0800</pubDate><description><![CDATA[描述：

深度复制一个二叉树。

给定一个二叉树，返回一个他的 克隆品 。

样例：

给定一个二叉树：
     1
   /  \
  2    3
 / \
4   5

返回其相同结构相同数值的克隆二叉树：
     1
   /  \
  2    3
 / \
4   5




Java代码：

/**
 * Definition of TreeN]]></description><category></category></item><item><title><![CDATA[【剑指offer】二叉树的路径和]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73530653</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73530653</guid><author>linlinno</author><pubDate>Wed, 21 Jun 2017 11:55:48 +0800</pubDate><description><![CDATA[描述：

给定一个二叉树，找出所有路径中各节点相加总和等于给定 目标值 的路径。

一个有效的路径，指的是从根节点到叶节点的路径。

样例：

给定一个二叉树，和 目标值 = 5:
     1
    / \
   2   4
  / \
 2   3

返回：
[
  [1, 2, 2],
  [1, 4]
]




Java代码：

二叉树：先序遍历（根]]></description><category></category></item><item><title><![CDATA[【剑指offer】快速幂]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73465557</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73465557</guid><author>linlinno</author><pubDate>Tue, 20 Jun 2017 11:09:28 +0800</pubDate><description><![CDATA[描述：
计算an %
 b，其中a，b和n都是32位的整数。
样例：

例如 231 % 3 = 2
例如 1001000 % 1000 = 0



Java代码：




class Solution {
    /*
     * @param a, b, n: 32bit integers
     * @return: An integer
     */]]></description><category></category></item><item><title><![CDATA[【剑指offer】用递归打印数字]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73483569</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73483569</guid><author>linlinno</author><pubDate>Tue, 20 Jun 2017 11:05:37 +0800</pubDate><description><![CDATA[描述：
用递归的方法找到从1到最大的N位整数。


 注意事项

用下面这种方式去递归其实很容易：
recursion(i) {
    if i > largest number:
        return
    results.add(i)
    recursion(i + 1)
}

但是这种方式会耗费很多的递归空间，导致堆栈溢出。你能够用其他的方式来递归使得递归的深]]></description><category></category></item><item><title><![CDATA[【剑指offer】翻转链表]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73482753</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73482753</guid><author>linlinno</author><pubDate>Tue, 20 Jun 2017 11:01:09 +0800</pubDate><description><![CDATA[描述：
翻转一个链表
样例：

给出一个链表1->2->3->null，这个翻转后的链表为3->2->1->null



Java代码：
/**
 * Definition for ListNode.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int val)]]></description><category></category></item><item><title><![CDATA[【剑指offer】合并两个排序链表]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73481411</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73481411</guid><author>linlinno</author><pubDate>Tue, 20 Jun 2017 10:58:40 +0800</pubDate><description><![CDATA[描述：
将两个排序链表合并为一个新的排序链表

样例：

给出 1->3->8->11->15->null，2->null，
 返回 1->2->3->8->11->15->null。



Java代码：
/**
 * Definition for ListNode.
 * public class ListNode {
 *     int val;
 *     Lis]]></description><category></category></item><item><title><![CDATA[【剑指offer】删除链表中倒数第n个节点]]></title><link>https://blog.youkuaiyun.com/linlinno/article/details/73481331</link><guid>https://blog.youkuaiyun.com/linlinno/article/details/73481331</guid><author>linlinno</author><pubDate>Tue, 20 Jun 2017 10:50:35 +0800</pubDate><description><![CDATA[描述：
给定一个链表，删除链表中倒数第n个节点，返回链表的头节点。


 注意事项

链表中的节点个数大于等于n

样例：

给出链表1->2->3->4->5->null和 n = 2.
删除倒数第二个节点之后，这个链表将变成1->2->3->5->null.



Java代码：
前后两个指针，第一个先走n步，然后两个一起走，第一个到达链表尾部时，第二个就是要删]]></description><category></category></item></channel></rss>