<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[anningne的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/anningne</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; anningne]]></copyright><item><title><![CDATA[287. 寻找重复数（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121420716</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121420716</guid><author>anningne</author><pubDate>Fri, 19 Nov 2021 13:44:30 +0800</pubDate><description><![CDATA[题目：力扣

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

假设 nums 只有 一个重复的整数 ，找出 这个重复的数 。

你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。



示例 1：

输入：nums = [1,3,4,2,2]
输出：2
示例 2：

输入：nums = [3,1,3,4,2]
输出：3
示例 3：

输入：nums = [1,1]
输出：1
示例 4：

输入：...]]></description><category></category></item><item><title><![CDATA[31. 下一个排列（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121336354</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121336354</guid><author>anningne</author><pubDate>Mon, 15 Nov 2021 16:33:53 +0800</pubDate><description><![CDATA[题目：力扣

实现获取 下一个排列 的函数，算法需要将给定数字序列重新排列成字典序中下一个更大的排列（即，组合出下一个更大的整数）。

如果不存在下一个更大的排列，则将数字重新排列成最小的排列（即升序排列）。

必须 原地 修改，只允许使用额外常数空间。



示例 1：

输入：nums = [1,2,3]
输出：[1,3,2]
示例 2：

输入：nums = [3,2,1]
输出：[1,2,3]
示例 3：

输入：nums = [1,1,5]
输出：[1,5,1]
示例 4：

输入：nums = ]]></description><category></category></item><item><title><![CDATA[15. 三数之和（python）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121328347</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121328347</guid><author>anningne</author><pubDate>Mon, 15 Nov 2021 09:48:29 +0800</pubDate><description><![CDATA[题目：力扣

给你一个包含 n 个整数的数组nums，判断nums中是否存在三个元素 a，b，c ，使得a + b + c = 0 ？请你找出所有和为 0 且不重复的三元组。

注意：答案中不可以包含重复的三元组。



示例 1：

输入：nums = [-1,0,1,2,-1,-4]
输出：[[-1,-1,2],[-1,0,1]]

示例 2：

输入：nums = []
输出：[]


示例 3：

输入：nums = [0]
输出：[]


提示：

0 &lt;= nums.length...]]></description><category></category></item><item><title><![CDATA[11. 盛最多水的容器（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121252452</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121252452</guid><author>anningne</author><pubDate>Wed, 10 Nov 2021 17:15:36 +0800</pubDate><description><![CDATA[题目：力扣

给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线，垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线，使得它们与x轴共同构成的容器可以容纳最多的水。

说明：你不能倾斜容器。



示例 1：

输入：[1,8,6,2,5,4,8,3,7]
输出：49
解释：图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为49。
示例...]]></description><category></category></item><item><title><![CDATA[2. 两数相加（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121231234</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121231234</guid><author>anningne</author><pubDate>Tue, 09 Nov 2021 16:38:24 +0800</pubDate><description><![CDATA[题目：力扣

给你两个非空 的链表，表示两个非负的整数。它们每位数字都是按照逆序的方式存储的，并且每个节点只能存储一位数字。

请你将两个数相加，并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外，这两个数都不会以 0开头。



示例 1：






输入：l1 = [2,4,3], l2 = [5,6,4]
输出：[7,0,8]
解释：342 + 465 = 807.
示例 2：

输入：l1 = [0], l2 = [0]
输出：[0]
示例 3：

输入：l1 = [...]]></description><category></category></item><item><title><![CDATA[226. 翻转二叉树（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121224120</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121224120</guid><author>anningne</author><pubDate>Tue, 09 Nov 2021 11:14:20 +0800</pubDate><description><![CDATA[题目：力扣

翻转一棵二叉树。

示例：

输入：

  4
 /  \
 2   7
/ \  / \
1  3 6  9
输出：

  4
 /  \
 7   2
/ \  / \
9  6 3  1



代码：


class Solution:
    def invertTree(self, root: TreeNode) -&gt; TreeNode:
        if not root:
            return None...]]></description><category></category></item><item><title><![CDATA[617. 合并二叉树（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121222293</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121222293</guid><author>anningne</author><pubDate>Tue, 09 Nov 2021 10:13:06 +0800</pubDate><description><![CDATA[题目：力扣

给定两个二叉树，想象当你将它们中的一个覆盖到另一个上时，两个二叉树的一些节点便会重叠。

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠，那么将他们的值相加作为节点合并后的新值，否则不为NULL 的节点将直接作为新二叉树的节点。

示例1:

输入:
 Tree 1           Tree 2         
     1             2          ...]]></description><category></category></item><item><title><![CDATA[543. 二叉树的直径（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121138256</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121138256</guid><author>anningne</author><pubDate>Thu, 04 Nov 2021 11:08:37 +0800</pubDate><description><![CDATA[题目：力扣

给定一棵二叉树，你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。



示例 :
给定二叉树

     1
    / \
    2  3
   / \  
   4  5  
返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。



注意：两结点之间的路径长度是以它们之间边的数目表示。



解题思路：

左子树+右子树+1（父节点）代表路径长...]]></description><category></category></item><item><title><![CDATA[461. 汉明距离（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121127800</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121127800</guid><author>anningne</author><pubDate>Wed, 03 Nov 2021 18:43:59 +0800</pubDate><description><![CDATA[题目：力扣

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

给你两个整数 x 和 y，计算并返回它们之间的汉明距离。



示例 1：

输入：x = 1, y = 4
输出：2
解释：
1  (0 0 0 1)
4  (0 1 0 0)
   ↑  ↑
上面的箭头指出了对应二进制位不同的位置。
示例 2：

输入：x = 3, y = 1
输出：1


提示：

0 &lt;=x, y &lt;= 231 - 1



解题思路：

异或运算x^y，再计算结...]]></description><category></category></item><item><title><![CDATA[448. 找到所有数组中消失的数字（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121125757</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121125757</guid><author>anningne</author><pubDate>Wed, 03 Nov 2021 18:07:32 +0800</pubDate><description><![CDATA[题目：力扣

给你一个含 n 个整数的数组 nums ，其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字，并以数组的形式返回结果。



示例 1：

输入：nums = [4,3,2,7,8,2,3,1]
输出：[5,6]
示例 2：

输入：nums = [1,1]
输出：[2]


提示：

n == nums.length
1 &lt;= n &lt;= 105
1 &lt;= nums[i] &lt;= n
进阶：你能在不使用额.]]></description><category></category></item><item><title><![CDATA[338. 比特位计数（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121121111</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121121111</guid><author>anningne</author><pubDate>Wed, 03 Nov 2021 15:02:09 +0800</pubDate><description><![CDATA[题目：力扣

给你一个整数 n ，对于0 &lt;= i &lt;= n 中的每个 i ，计算其二进制表示中 1 的个数 ，返回一个长度为 n + 1 的数组 ans 作为答案。



示例 1：

输入：n = 2
输出：[0,1,1]
解释：
0 --&gt; 0
1 --&gt; 1
2 --&gt; 10
示例 2：

输入：n = 5
输出：[0,1,1,2,1,2]
解释：
0 --&gt; 0
1 --&gt; 1
2 --&gt; 10
3 --&gt; 11
4 --&gt; 100
5.]]></description><category></category></item><item><title><![CDATA[283. 移动零（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121116071</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121116071</guid><author>anningne</author><pubDate>Wed, 03 Nov 2021 10:36:36 +0800</pubDate><description><![CDATA[题目：力扣

给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:

必须在原数组上操作，不能拷贝额外的数组。
尽量减少操作次数。

解题思路：





代码：


class Solution:
    def moveZeroes(self, nums: List[int]) -&gt; None:
        n = len(nums)
        left = ]]></description><category></category></item><item><title><![CDATA[234. 回文链表（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121083376</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121083376</guid><author>anningne</author><pubDate>Mon, 01 Nov 2021 16:54:00 +0800</pubDate><description><![CDATA[题目：力扣

给你一个单链表的头节点 head ，请你判断该链表是否为回文链表。如果是，返回 true ；否则，返回 false 。



示例 1：




输入：head = [1,2,2,1]
输出：true


示例 2：






输入：head = [1,2]
输出：false



提示：

链表中节点数目在范围[1, 105] 内
0 &lt;= Node.val &lt;= 9


进阶：你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题？



解题思路：

将链...]]></description><category></category></item><item><title><![CDATA[169. 多数元素（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121028162</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121028162</guid><author>anningne</author><pubDate>Mon, 01 Nov 2021 14:22:50 +0800</pubDate><description><![CDATA[给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。

你可以假设数组是非空的，并且给定的数组总是存在多数元素。



示例1：

输入：[3,2,3]
输出：3
示例2：

输入：[2,2,1,1,1,2,2]
输出：2


进阶：

尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。



解题思路：





代码：


class Solution:
    def majorityElement(self, nu...]]></description><category></category></item><item><title><![CDATA[206. 反转链表（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/121078877</link><guid>https://blog.youkuaiyun.com/anningne/article/details/121078877</guid><author>anningne</author><pubDate>Mon, 01 Nov 2021 14:05:30 +0800</pubDate><description><![CDATA[题目：力扣

给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。


示例 1：


输入：head = [1,2,3,4,5]
输出：[5,4,3,2,1]
示例 2：


输入：head = [1,2]
输出：[2,1]
示例 3：

输入：head = []
输出：[]


提示：

链表中节点的数目范围是 [0, 5000]
-5000 &lt;= Node.val &lt;= 5000


解题思路：

置三个指针，分别代表前一个位置pre，当前位置cur和下一个位置fol，...]]></description><category></category></item><item><title><![CDATA[160. 相交链表（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/120956333</link><guid>https://blog.youkuaiyun.com/anningne/article/details/120956333</guid><author>anningne</author><pubDate>Thu, 28 Oct 2021 16:52:49 +0800</pubDate><description><![CDATA[给你两个单链表的头节点headA 和 headB ，请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点，返回 null 。

图示两个链表在节点 c1 开始相交：



题目数据 保证 整个链式结构中不存在环。

注意，函数返回结果后，链表必须 保持其原始结构 。



示例 1：



输入：intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3
输出：Intersected at ..]]></description><category></category></item><item><title><![CDATA[141. 环形链表（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/120849322</link><guid>https://blog.youkuaiyun.com/anningne/article/details/120849322</guid><author>anningne</author><pubDate>Tue, 19 Oct 2021 16:39:07 +0800</pubDate><description><![CDATA[题目：力扣

给定一个链表，判断链表中是否有环。

如果链表中有某个节点，可以通过连续跟踪 next 指针再次到达，则链表中存在环。 为了表示给定链表中的环，我们使用整数 pos 来表示链表尾连接到链表中的位置（索引从 0 开始）。 如果 pos 是 -1，则在该链表中没有环。注意：pos 不作为参数进行传递，仅仅是为了标识链表的实际情况。

如果链表中存在环，则返回 true 。 否则，返回 false 。



进阶：

你能用 O(1)（即，常量）内存解决此问题吗？



示例 1：



输入：h.]]></description><category></category></item><item><title><![CDATA[136. 只出现一次的数字（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/120531488</link><guid>https://blog.youkuaiyun.com/anningne/article/details/120531488</guid><author>anningne</author><pubDate>Tue, 28 Sep 2021 16:51:35 +0800</pubDate><description><![CDATA[题目：力扣

给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。

说明：

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？

示例 1:

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

输入: [4,1,2,1,2]
输出: 4



解题思路：

线性复杂度：直接用list的count函数，set记录已有的再遇到相同的删除，dict记录数和出现次数等方法

o(1)存储空间：没有思路，参考别人方案，使用位运算的异或运算处理。

异.]]></description><category></category></item><item><title><![CDATA[104. 二叉树的最大深度（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/120528673</link><guid>https://blog.youkuaiyun.com/anningne/article/details/120528673</guid><author>anningne</author><pubDate>Tue, 28 Sep 2021 14:32:29 +0800</pubDate><description><![CDATA[题目：力扣

给定一个二叉树，找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明:叶子节点是指没有子节点的节点。

示例：
给定二叉树 [3,9,20,null,null,15,7]，

  3
 / \
 9 20
  / \
 15  7
返回它的最大深度3 。



代码：


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, va...]]></description><category></category></item><item><title><![CDATA[101. 对称二叉树（python3）]]></title><link>https://blog.youkuaiyun.com/anningne/article/details/120528501</link><guid>https://blog.youkuaiyun.com/anningne/article/details/120528501</guid><author>anningne</author><pubDate>Tue, 28 Sep 2021 14:30:48 +0800</pubDate><description><![CDATA[题目：力扣

给定一个二叉树，检查它是否是镜像对称的。



例如，二叉树[1,2,2,3,4,4,3] 是对称的。

  1
 / \
 2  2
/ \ / \
3 4 4 3


但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的:

  1
 / \
 2  2
 \  \
 3  3


进阶：

你可以运用递归和迭代两种方法解决这个问题吗？



解题思路：

递归比较左子树的左孩子与右子树的右孩子，左子树的右孩子和右子树...]]></description><category></category></item></channel></rss>