<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[沧海漂游的博客]]></title><description><![CDATA[记录学习历程]]></description><link>https://blog.csdn.net/lv1224</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lv1224]]></copyright><item><title><![CDATA[Python装饰器]]></title><link>https://blog.csdn.net/lv1224/article/details/101780743</link><guid>https://blog.csdn.net/lv1224/article/details/101780743</guid><author>lv1224</author><pubDate>Wed, 09 Oct 2019 21:29:44 +0800</pubDate><description><![CDATA[何为装饰器
什么时候执行
如何传参数
语法糖
类装饰器

]]></description><category></category></item><item><title><![CDATA[Python 闭包]]></title><link>https://blog.csdn.net/lv1224/article/details/101781086</link><guid>https://blog.csdn.net/lv1224/article/details/101781086</guid><author>lv1224</author><pubDate>Wed, 09 Oct 2019 20:24:20 +0800</pubDate><description><![CDATA[变量作用域
变量作用域是在程序运行时变量可以被访问的范围，定义在函数内部的为局部变量，只能在函数内部可以访问
def fun():
    num = 10 #局部变量
    print('num = %d' % num)
fun()
[输出结果] 
num = 10

定义在模块外的为全局变量，它在全局范围内均为可见，同时在函数内部也可以访问全局变量
num = 10 #全局变量
def fu...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 23. 合并K个排序链表]]></title><link>https://blog.csdn.net/lv1224/article/details/82821883</link><guid>https://blog.csdn.net/lv1224/article/details/82821883</guid><author>lv1224</author><pubDate>Sun, 23 Sep 2018 14:09:28 +0800</pubDate><description><![CDATA[题目
合并 k 个排序链表，返回合并后的排序链表。请分析和描述算法的复杂度。
示例:

输入:
[
1-&amp;gt;4-&amp;gt;5,
1-&amp;gt;3-&amp;gt;4,
2-&amp;gt;6
]
输出: 1-&amp;gt;1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;4-&amp;gt;5-&amp;gt;6

方法一
这题可以考虑用二路归并排序，也就是分治法，两两一组合并，最终得到有序的链表。
代码
/**
 * Definiti...]]></description><category></category></item><item><title><![CDATA[[C++]LeetCode 164. 最大间距]]></title><link>https://blog.csdn.net/lv1224/article/details/82819486</link><guid>https://blog.csdn.net/lv1224/article/details/82819486</guid><author>lv1224</author><pubDate>Sun, 23 Sep 2018 00:53:25 +0800</pubDate><description><![CDATA[题目
给定一个无序的数组，找出数组在排序之后，相邻元素之间最大的差值。
如果数组元素个数小于 2，则返回 0。
示例 1:
输入: [3,6,9,1]
输出: 3
解释: 排序后的数组是[1,3,6,9], 其中相邻元素 (3,6)和 (6,9)之间都存在最大差值 3。
示例 2:
输入: [10]
输出: 0
解释: 数组元素个数小于 2，因此返回0。
说明:

你可以假设数组中所有元素都是非负...]]></description><category></category></item><item><title><![CDATA[LeetCode题解汇总]]></title><link>https://blog.csdn.net/lv1224/article/details/82594968</link><guid>https://blog.csdn.net/lv1224/article/details/82594968</guid><author>lv1224</author><pubDate>Mon, 10 Sep 2018 20:38:08 +0800</pubDate><description><![CDATA[LeetCode题解汇总

LeetCode题解总结目录，C++语言




  题号
  题目
  难度
  解析连接



  5
  最长回文子串
  medium
  C++


  17
  电话号码的字母组合
  medium
  C++


  31
  下一个排列
  medium
  C++


  32
  最长有效括号
  hard
  C++


  41
  缺失的第一个...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 200. 岛屿的个数]]></title><link>https://blog.csdn.net/lv1224/article/details/82470100</link><guid>https://blog.csdn.net/lv1224/article/details/82470100</guid><author>lv1224</author><pubDate>Thu, 06 Sep 2018 23:50:40 +0800</pubDate><description><![CDATA[题目

给定一个由 ‘1’（陆地）和 ‘0’（水）组成的的二维网格，计算岛屿的数量。一个岛被水包围，并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。

示例 1:


  输入: 
  11110 
  11010 
  11000 
  00000 
  输出: 1


示例 2:


  输入: 
  11000 
  11000 
  00100 
 ...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 287. 寻找重复数]]></title><link>https://blog.csdn.net/lv1224/article/details/82384040</link><guid>https://blog.csdn.net/lv1224/article/details/82384040</guid><author>lv1224</author><pubDate>Tue, 04 Sep 2018 15:12:27 +0800</pubDate><description><![CDATA[题目

给定一个包含 n + 1 个整数的数组 nums，其数字都在 1 到 n 之间（包括 1 和 n），可知至少存在一个重复的整数。假设只有一个重复的整数，找出这个重复的数。


  示例 1: 
  输入: [1,3,4,2,2] 
  输出: 2 
  示例 2: 
  输入: [3,1,3,4,2] 
  输出: 3


说明： 
不能更改原数组（假设数组是只读的）。 
只能使用额外的 ...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 295. 数据流的中位数]]></title><link>https://blog.csdn.net/lv1224/article/details/82222719</link><guid>https://blog.csdn.net/lv1224/article/details/82222719</guid><author>lv1224</author><pubDate>Thu, 30 Aug 2018 15:49:42 +0800</pubDate><description><![CDATA[题目

中位数是有序列表中间的数。如果列表长度是偶数，中位数则是中间两个数的平均值。

例如， 
[2,3,4] 的中位数是 3 
[2,3] 的中位数是 (2 + 3) / 2 = 2.5

设计一个支持以下两种操作的数据结构： 
void addNum(int num)- 从数据流中添加一个整数到数据结构中。 
double findMedian() - 返回目前所有元素的中位数。


  示...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 436. 寻找右区间]]></title><link>https://blog.csdn.net/lv1224/article/details/81751189</link><guid>https://blog.csdn.net/lv1224/article/details/81751189</guid><author>lv1224</author><pubDate>Fri, 17 Aug 2018 00:49:25 +0800</pubDate><description><![CDATA[题目

给定一组区间，对于每一个区间 i，检查是否存在一个区间 j，它的起始点大于或等于区间 i 的终点，这可以称为 j 在 i 的“右侧”。

对于任何区间，你需要存储的满足条件的区间 j 的最小索引，这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j 不存在，则将区间 i 存储为 -1。最后，你需要输出一个值为存储的区间值的数组。

注意: 
你可以假设区间的终点总是大于它...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 718. 最长重复子数组]]></title><link>https://blog.csdn.net/lv1224/article/details/81750701</link><guid>https://blog.csdn.net/lv1224/article/details/81750701</guid><author>lv1224</author><pubDate>Thu, 16 Aug 2018 23:31:53 +0800</pubDate><description><![CDATA[题目

给两个整数数组 A 和 B ，返回两个数组中公共的、长度最长的子数组的长度。 
示例 1:


  输入: 
  A: [1,2,3,2,1] 
  B: [3,2,1,4,7] 
  输出: 3


解释:  
长度最长的公共子数组是 [3, 2, 1]。 
说明: 
1 &amp;lt;= len(A), len(B) &amp;lt;= 1000 
0 &amp;lt;= A[i], B[i] &amp;lt; 1...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 174. 地下城游戏]]></title><link>https://blog.csdn.net/lv1224/article/details/81713505</link><guid>https://blog.csdn.net/lv1224/article/details/81713505</guid><author>lv1224</author><pubDate>Thu, 16 Aug 2018 00:08:51 +0800</pubDate><description><![CDATA[题目

一些恶魔抓住了公主（P）并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士（K）最初被安置在左上角的房间里，他必须穿过地下城并通过对抗恶魔来拯救公主。

骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下，他会立即死亡。

有些房间由恶魔守卫，因此骑士在进入这些房间时会失去健康点数（若房间里的值为负整数，则表示骑士将损失健康点数...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 354. 俄罗斯套娃信封问题]]></title><link>https://blog.csdn.net/lv1224/article/details/81712826</link><guid>https://blog.csdn.net/lv1224/article/details/81712826</guid><author>lv1224</author><pubDate>Wed, 15 Aug 2018 23:06:10 +0800</pubDate><description><![CDATA[题目

给定一些标记了宽度和高度的信封，宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候，这个信封就可以放进另一个信封里，如同俄罗斯套娃一样。 
请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封（即可以把一个信封放到另一个信封里面）。

说明: 
不允许旋转信封。

示例:


  输入: envelopes = [[5,4],[6,4],[6,7],[...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 300. 最长上升子序列]]></title><link>https://blog.csdn.net/lv1224/article/details/81712742</link><guid>https://blog.csdn.net/lv1224/article/details/81712742</guid><author>lv1224</author><pubDate>Wed, 15 Aug 2018 22:58:37 +0800</pubDate><description><![CDATA[题目

给定一个无序的整数数组，找到其中最长上升子序列的长度。 
示例:


  输入: [10,9,2,5,3,7,101,18] 
  输出: 4  
  解释: 最长的上升子序列是 [2,3,7,101]，它的长度是 4。


说明: 
可能会有多种最长上升子序列的组合，你只需要输出对应的长度即可。 
你算法的时间复杂度应该为 O(n2) 。 
进阶: 你能将算法的时间复杂度降低到 O(n ...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 二叉树的前序、中序、后序遍历]]></title><link>https://blog.csdn.net/lv1224/article/details/81090882</link><guid>https://blog.csdn.net/lv1224/article/details/81090882</guid><author>lv1224</author><pubDate>Wed, 18 Jul 2018 00:22:15 +0800</pubDate><description><![CDATA[题目

二叉树的前序、中序、后序遍历，采用递归和非递归写法。 
具体题目见： 
二叉树前序遍历https://leetcode-cn.com/problems/binary-tree-preorder-traversal/description/ 
二叉树中序遍历(https://leetcode-cn.com/problems/binary-tree-inorder-traversal/desc...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 378. 有序矩阵中第K小的元素]]></title><link>https://blog.csdn.net/lv1224/article/details/81055471</link><guid>https://blog.csdn.net/lv1224/article/details/81055471</guid><author>lv1224</author><pubDate>Sun, 15 Jul 2018 18:16:45 +0800</pubDate><description><![CDATA[题目

给定一个 n x n 矩阵，其中每行和每列元素均按升序排序，找到矩阵中第k小的元素。 
请注意，它是排序后的第k小元素，而不是第k个元素。


  示例: 
  matrix = [ 
     [ 1,  5,  9], 
     [10, 11, 13], 
     [12, 13, 15] 
  ], 
  k = 8, 
  返回 13。


说明:  
你可以假设k 的值永远...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 336. 回文对]]></title><link>https://blog.csdn.net/lv1224/article/details/81052277</link><guid>https://blog.csdn.net/lv1224/article/details/81052277</guid><author>lv1224</author><pubDate>Sun, 15 Jul 2018 13:23:00 +0800</pubDate><description><![CDATA[题目

给定一组独特的单词， 找出在给定列表中不同 的索引对(i, j),使得关联的两个单词，例如：words[i] + words[j]形成回文。

示例 1: 
给定words = [&quot;bat&quot;, &quot;tab&quot;, &quot;cat&quot;] 
返回 [[0, 1], [1, 0]] 
回文是[&quot;battab&quot;, &quot;tabbat&quot;]

示例 2: 
给定 words = [&quot;abcd&quot;, &quot;d]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 214. 最短回文串]]></title><link>https://blog.csdn.net/lv1224/article/details/81052102</link><guid>https://blog.csdn.net/lv1224/article/details/81052102</guid><author>lv1224</author><pubDate>Sun, 15 Jul 2018 13:00:39 +0800</pubDate><description><![CDATA[题目

给定一个字符串 s，你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

示例 1: 
输入: &quot;aacecaaa&quot; 
输出:&quot;aaacecaaa&quot; 

示例 2: 
输入:&quot;abcd&quot; 
输出:&quot;dcbabcd&quot;



思路解析

这题考虑把字符串s分成s1和s2两部分，即s=s1+s2，其中s1为回文串，s2不是回文串，那么构成的最短回文串就是r...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 5. 最长回文子串]]></title><link>https://blog.csdn.net/lv1224/article/details/81051875</link><guid>https://blog.csdn.net/lv1224/article/details/81051875</guid><author>lv1224</author><pubDate>Sun, 15 Jul 2018 12:24:06 +0800</pubDate><description><![CDATA[题目

给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 
示例 1： 
输入: &amp;amp;quot;babad&amp;amp;quot; 
输出: &amp;amp;quot;bab&amp;amp;quot; 
注意: &amp;amp;quot;aba&amp;amp;quot;也是一个有效答案。 

示例 2： 
输入:&amp;amp;quot;cbbd&amp;amp;quot; 
输出: &amp;amp;quot;bb&amp;amp;quot]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 135. 分发糖果]]></title><link>https://blog.csdn.net/lv1224/article/details/81024238</link><guid>https://blog.csdn.net/lv1224/article/details/81024238</guid><author>lv1224</author><pubDate>Thu, 12 Jul 2018 23:51:22 +0800</pubDate><description><![CDATA[题目

老师想给孩子们分发糖果，有 N 个孩子站成了一条直线，老师会根据每个孩子的表现，预先给他们评分。 
你需要按照以下要求，帮助老师给这些孩子分发糖果： 
每个孩子至少分配到 1 个糖果。 
相邻的孩子中，评分高的孩子必须获得更多的糖果。 
那么这样下来，老师至少需要准备多少颗糖果呢？


  示例 1: 
  输入: [1,0,2] 
  输出: 5 
  解释: 你可以分别给这三个孩子分发...]]></description><category></category></item><item><title><![CDATA[[C++] LeetCode 42. 接雨水]]></title><link>https://blog.csdn.net/lv1224/article/details/81023833</link><guid>https://blog.csdn.net/lv1224/article/details/81023833</guid><author>lv1224</author><pubDate>Thu, 12 Jul 2018 23:00:24 +0800</pubDate><description><![CDATA[题目

给定n 个非负整数表示每个宽度为 1的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。 
 
上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图，在这种情况下，可以接 6个单位的雨水（蓝色部分表示雨水）。 感谢 Marcos 贡献此图。


  示例: 
  输入: [0,1,0,2,1,0,1,3,2,1,2,1] 
  输出: 6


思路解析

这道...]]></description><category></category></item></channel></rss>