<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LittleTime_cc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LittleTime_cc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LittleTime_cc]]></copyright><item><title><![CDATA[洛谷P3865 【模板】ST 表]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/120888243</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/120888243</guid><author>LittleTime_cc</author><pubDate>Thu, 21 Oct 2021 16:05:57 +0800</pubDate><description><![CDATA[洛谷P3865 【模板】ST 表

题目描述
给定一个长度为 NNN 的数列，和 MMM 次询问，求出每一次询问的区间内数字的最大值。


输入格式
第一行包含两个整数 N,MN,MN,M，分别表示数列的长度和询问的个数。
第二行包含 NNN 个整数（记为 aia_iai​），依次表示数列的第 iii 项。
接下来 MMM 行，每行包含两个整数 li,ril_i,r_ili​,ri​，表示查询的区间为 [li,ri][l_i,r_i][li​,ri​]。


输出格式
输出包含 MMM 行，每行一个整数，依]]></description><category></category></item><item><title><![CDATA[剑指 Offer 34. 二叉树中和为某一值的路径]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117697525</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117697525</guid><author>LittleTime_cc</author><pubDate>Tue, 08 Jun 2021 12:34:08 +0800</pubDate><description><![CDATA[剑指 Offer 34. 二叉树中和为某一值的路径

输入一棵二叉树和一个整数，打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
参考以下这颗二叉搜索树：
示例:
给定如下二叉树，以及目标和 target = 22，

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
       ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 33. 二叉搜索树的后序遍历序列]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117676116</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117676116</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 22:29:26 +0800</pubDate><description><![CDATA[剑指 Offer 33. 二叉搜索树的后序遍历序列

输入一个整数数组，判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true，否则返回 false。假设输入的数组的任意两个数字都互不相同。
参考以下这颗二叉搜索树：

     5
    / \
   2   6
  / \
 1   3

示例 1：
输入: [1,6,3,2,5]
输出: false

示例 2：
输入: [1,3,2,6,5]
输出: true

限制：
数组长度 &lt;= 1000

思路：递归   

根据后序遍历]]></description><category></category></item><item><title><![CDATA[剑指 Offer 32 - III. 从上到下打印二叉树 III]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675812</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675812</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 22:10:43 +0800</pubDate><description><![CDATA[剑指 Offer 32 - I. 从上到下打印二叉树

请实现一个函数按照之字形顺序打印二叉树，即第一行按照从左到右的顺序打印，第二层按照从右到左的顺序打印，第三行再按照从左到右的顺序打印，其他行以此类推。
例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回：
[
  [3],
  [20,9],
  [15,7]
]

限制：
节点总数 &lt;= 1000

思路：BFS + 标记   
clas]]></description><category></category></item><item><title><![CDATA[剑指 Offer 32 - II. 从上到下打印二叉树 II]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675802</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675802</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 22:10:09 +0800</pubDate><description><![CDATA[剑指 Offer 32 - I. 从上到下打印二叉树

从上到下按层打印二叉树，同一层的节点按从左到右的顺序打印，每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回：
[
  [3],
  [9,20],
  [15,7]
]

限制：
节点总数 &lt;= 1000

思路：BFS   
class Solution {
public:
    vector&lt;vector&]]></description><category></category></item><item><title><![CDATA[剑指 Offer 32 - I. 从上到下打印二叉树]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675760</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117675760</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 22:07:26 +0800</pubDate><description><![CDATA[剑指 Offer 32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点，同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回：
[3,9,20,15,7]

限制：
节点总数 &lt;= 1000

思路：BFS   
class Solution {
public:
    vector&lt;int&gt; levelOrder(TreeNode]]></description><category></category></item><item><title><![CDATA[剑指 Offer 31. 栈的压入、弹出序列]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117653362</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117653362</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 10:58:10 +0800</pubDate><description><![CDATA[剑指 Offer 31. 栈的压入、弹出序列

输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如，序列 {1,2,3,4,5} 是某栈的压栈序列，序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列，但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。

示例 1：
输入：pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出：true
解释：我们可以按以下顺序执行：
push(1), ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 30. 包含min函数的栈]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117653065</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117653065</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 10:51:47 +0800</pubDate><description><![CDATA[剑指 Offer 30. 包含min函数的栈

定义栈的数据结构，请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中，调用 min、push 及 pop 的时间复杂度都是 O(1)。

示例 1：
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min();   --&gt; 返回 -3.
minStack.pop();
minStack.t]]></description><category></category></item><item><title><![CDATA[剑指 Offer 29. 顺时针打印矩阵]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117652396</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117652396</guid><author>LittleTime_cc</author><pubDate>Mon, 07 Jun 2021 10:37:11 +0800</pubDate><description><![CDATA[剑指 Offer 29. 顺时针打印矩阵

输入一个矩阵，按照从外向里以顺时针的顺序依次打印出每一个数字。

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

示例 2：
输入：matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出：[1,2,3,4,8,12,11,10,9,5,6,7]

限制：
0 &lt;= matrix.length &lt;= 100
0 &lt;= mat]]></description><category></category></item><item><title><![CDATA[剑指 Offer 28. 对称的二叉树]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461838</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461838</guid><author>LittleTime_cc</author><pubDate>Wed, 02 Jun 2021 10:21:43 +0800</pubDate><description><![CDATA[剑指 Offer 28. 对称的二叉树

请实现一个函数，用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样，那么它是对称的。
例如，二叉树 [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


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

示例 2]]></description><category></category></item><item><title><![CDATA[剑指 Offer 27. 二叉树的镜像]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461816</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461816</guid><author>LittleTime_cc</author><pubDate>Wed, 02 Jun 2021 10:21:10 +0800</pubDate><description><![CDATA[剑指 Offer 27. 二叉树的镜像

请完成一个函数，输入一个二叉树，该函数输出它的镜像。
例如输入：
4
/  \
2    7
/ \  / \
1  3 6  9

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


示例 1：
输入：root = [4,2,7,1,3,6,9]
输出：[4,7,2,9,6,3,1]

限制：
0 &lt;= 节点个数 &lt;= 1000

思路一：BFS   
class Solution {
public:
   ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 26. 树的子结构]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461786</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117461786</guid><author>LittleTime_cc</author><pubDate>Wed, 02 Jun 2021 10:20:33 +0800</pubDate><description><![CDATA[剑指 Offer 26. 树的子结构

输入两棵二叉树A和B，判断B是不是A的子结构。(约定空树不是任意一个树的子结构)
B是A的子结构， 即 A中有出现和B相同的结构和节点值。
例如:
给定的树 A:
3
/ \
4  5
/ \
1   2

给定的树 B：
4 
/
1


示例 1：
输入：A = [1,2,3], B = [3,1]
输出：false

示例 2：
输入：A = [3,4,5,1,2], B = [4,1]
输出：true

限制：
0 &lt;= 节点个数 &lt;= 10000]]></description><category></category></item><item><title><![CDATA[剑指 Offer 25. 合并两个排序的链表]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445724</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445724</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 16:14:44 +0800</pubDate><description><![CDATA[剑指 Offer 25. 合并两个排序的链表

输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。

示例 1：
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4

限制：
0 &lt;= 链表长度 &lt;= 1000

思路：模拟   
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 24. 反转链表]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445705</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445705</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 16:14:13 +0800</pubDate><description><![CDATA[剑指 Offer 24. 反转链表

定义一个函数，输入一个链表的头节点，反转该链表并输出反转后链表的头节点。

示例 1：
输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL
输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL

限制：
0 &lt;= 节点个数 &lt;= 5000

思路：模拟   
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
       ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 22. 链表中倒数第k个节点]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445668</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445668</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 16:13:12 +0800</pubDate><description><![CDATA[剑指 Offer 22. 链表中倒数第k个节点

输入一个链表，输出该链表中倒数第k个节点。为了符合大多数人的习惯，本题从1开始计数，即链表的尾节点是倒数第1个节点。
例如，一个链表有 6 个节点，从头节点开始，它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

示例 1：
给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 k = 2.

返回链表 4-&gt;5.

思路：双指针   
class Solution {
public:
   ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 20. 表示数值的字符串]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445615</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117445615</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 16:11:52 +0800</pubDate><description><![CDATA[剑指 Offer 20. 表示数值的字符串

请实现一个函数用来判断字符串是否表示数值（包括整数和小数）。
数值（按顺序）可以分成以下几个部分：


若干空格


一个 小数 或者 整数


（可选）一个 ‘e’ 或 ‘E’ ，后面跟着一个 整数\


若干空格


小数（按顺序）可以分成以下几个部分：


（可选）一个符号字符（’+’ 或 ‘-’）


下述格式之一：


至少一位数字，后面跟着一个点 ‘.’


至少一位数字，后面跟着一个点 ‘.’ ，后面再跟着至少一位数字


一个点 ‘.’ ，后面跟]]></description><category></category></item><item><title><![CDATA[剑指 Offer 21. 调整数组顺序使奇数位于偶数前面]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117438294</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117438294</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 10:58:20 +0800</pubDate><description><![CDATA[剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数位于数组的前半部分，所有偶数位于数组的后半部分。

示例 1：
输入：nums = [1,2,3,4]
输出：[1,3,2,4] 
注：[3,1,2,4] 也是正确的答案之一。

说明：
0 &lt;= nums.length &lt;= 50000
1 &lt;= nums[i] &lt;= 10000

思路：双指针   
class Solution {
public:
  ]]></description><category></category></item><item><title><![CDATA[剑指 Offer 19. 正则表达式匹配]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117437696</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117437696</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 10:44:39 +0800</pubDate><description><![CDATA[剑指 Offer 19. 正则表达式匹配

请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符，而’'表示它前面的字符可以出现任意次（含0次）。在本题中，匹配是指字符串的所有字符匹配整个模式。例如，字符串"aaa"与模式"a.a"和"abaca"匹配，但与"aa.a"和"ab*a"均不匹配。

示例 1：
输入:
s = "aa"
p = "a"
输出: false
解释: "a" 无法匹配 "aa" 整个字符串。

示例 2：
输入:
s = "aa"
p = "a*]]></description><category></category></item><item><title><![CDATA[[数组 - 哈希表] LeetCode 1. 两数之和]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117433594</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117433594</guid><author>LittleTime_cc</author><pubDate>Tue, 01 Jun 2021 01:06:35 +0800</pubDate><description><![CDATA[1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

示例 1：
输入：nums = [2,7,11,15], target = 9
输出：[0,1]
解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。

示例 2：
输入：nums = [3,2,4],]]></description><category></category></item><item><title><![CDATA[剑指 Offer 18. 删除链表的节点]]></title><link>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117413499</link><guid>https://blog.youkuaiyun.com/LittleTime_cc/article/details/117413499</guid><author>LittleTime_cc</author><pubDate>Mon, 31 May 2021 11:37:58 +0800</pubDate><description><![CDATA[剑指 Offer 18. 删除链表的节点

给定单向链表的头指针和一个要删除的节点的值，定义一个函数删除该节点。
返回删除后的链表的头节点。
**注意：**此题对比原题有改动

示例 1：
输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为&nbsp;5&nbsp;的第二个节点，那么在调用了你的函数之后，该链表应变为 4 -&gt; 1 -&gt; 9.

示例 2：
输入: head = [4,5,1,9], val = 1
输出: [4,5,9]]]></description><category></category></item></channel></rss>