<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ruially的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ruially</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ruially]]></copyright><item><title><![CDATA[天梯赛L2-043 龙龙送外卖]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/159965877</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/159965877</guid><author>Ruially</author><pubDate>Wed, 08 Apr 2026 21:27:50 +0800</pubDate><description><![CDATA[龙龙是“饱了呀”外卖软件的注册骑手，负责送帕特小区的外卖。帕特小区的构造非常特别，都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树，根结点是外卖站，树上的结点就是要送餐的地址。每到中午 12 点，帕特小区就进入了点餐高峰。一开始，只有一两个地方点外卖，龙龙简单就送好了；但随着大数据的分析，龙龙被派了更多的单子，也就送得越来越累……看着一大堆订单，龙龙想知道，从外卖站出发，访问所有点了外卖的地方至少一次（这样才能把外卖送到）所需的最短路程的距离到底是多少？]]></description><category></category></item><item><title><![CDATA[天梯赛L2-004 这是二叉搜索树吗？]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/159939580</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/159939580</guid><author>Ruially</author><pubDate>Wed, 08 Apr 2026 08:56:05 +0800</pubDate><description><![CDATA[完全正确！根 → 左 → 右左 → 右 → 根它们结构完全对称，只是根的位置不同最先处理根最后处理根神级理解！你说：划分左右 → 递归到底 → 回溯时，当前 l 正好是根回溯的过程天然就是后序遍历这句话太对了！]]></description><category></category></item><item><title><![CDATA[天梯赛L2-035 完全二叉树的层序遍历]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/159779661</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/159779661</guid><author>Ruially</author><pubDate>Fri, 03 Apr 2026 08:53:36 +0800</pubDate><description><![CDATA[一个二叉树，如果每一个层的结点数都达到最大值，则这个二叉树就是。对于深度为 D 的，有 N 个结点的二叉树，若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点，这样的树就是。给定一棵完全二叉树的后序遍历，请你给出这棵树的层序遍历结果。]]></description><category></category></item><item><title><![CDATA[天梯赛L2-006 树的遍历]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/159769487</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/159769487</guid><author>Ruially</author><pubDate>Thu, 02 Apr 2026 21:25:04 +0800</pubDate><description><![CDATA[2）标准 build 函数思路：先明确根节点（后序遍历的最后一个）—> 建立一个映射函数mp用来找到根节点在中序遍历中的位置 —>递归build函数，而左右子树的后序遍历的区间，我觉得是里面的一个难点。左右子树中序遍历的区间很好看出来，因为k是根节点，所以左子树的中序遍历区间就是【il，k-1】，右子树同理；而这个后序遍历的区间咋看呢？因为中序遍历是左子树—>根—>右子树，后序遍历是左子树—>右子树—>根，所以所以其左子树的pl延续下来，又因为中序遍历和后序遍历的长度肯定是一致的，]]></description><category></category></item><item><title><![CDATA[天梯赛L2-051 满树的遍历]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/159768824</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/159768824</guid><author>Ruially</author><pubDate>Thu, 02 Apr 2026 19:54:21 +0800</pubDate><description><![CDATA[一棵“k 阶满树”是指树中所有非叶结点的度都是 k 的树。给定一棵树，你需要判断其是否为 k 阶满树，并输出其前序遍历序列。注：树中结点的度是其拥有的子树的个数，而树的度是树内各结点的度的最大值。]]></description><category></category></item><item><title><![CDATA[字符串类型题目反思（1）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/157433776</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/157433776</guid><author>Ruially</author><pubDate>Tue, 27 Jan 2026 16:05:03 +0800</pubDate><description><![CDATA[题目描述你需要开发一款文字处理软件。最开始时输入一个字符串作为初始文档。可以认为文档开头是第 0 个字符。1 str：后接插入，在文档后面插入字符串 str，并输出文档的字符串；2 a b：截取文档部分，只保留文档中从第 a 个字符起 b 个字符，并输出文档的字符串；3 a str：插入片段，在文档中第 a 个字符前面插入字符串 str，并输出文档的字符串；4 str：查找子串，查找字符串 str 在文档中最先的位置并输出；如果找不到输出 −1。]]></description><category></category></item><item><title><![CDATA[PTA天梯赛题集（3）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/157359605</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/157359605</guid><author>Ruially</author><pubDate>Sun, 25 Jan 2026 14:59:28 +0800</pubDate><description><![CDATA[如果用getline（）函数输入的话，cin >> n >> c 读取完数字和字符后，输入缓冲区中会残留一个换行符 \n ，后续getline（）函数会直接读取这个空行，导致 s 变成空字符串。substr是sustring（子字符串）的缩写，作用是从一个字符串 s 中，按照指定的 “起始位置” 和 “截取长度”，提取出一小段新的字符串，根据它“只忽略/清除缓冲区里的【第一个字符】”的特性，它最常见的用法就是：清除缓冲区的换行符。（2）n的值比较小，只能从s的后面截取对应位数的char。]]></description><category></category></item><item><title><![CDATA[PTA天梯赛题集温故(2)]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/157328828</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/157328828</guid><author>Ruially</author><pubDate>Sat, 24 Jan 2026 21:30:00 +0800</pubDate><description><![CDATA[有点气馁的是，这个题真的看着好简单，但是，在实际操作的情况中遇到了一些困难。这个困难就是如何让性别相异。思路一：把男女的数据分开存放。这种思路会导致到输出的时候，你很难把握到最后以谁为基准来输出。思路二：生成降序和升序的两个数组，用一些条件来限制输出。我用到了flag来标记配对和未配对的人。]]></description><category></category></item><item><title><![CDATA[PTA天梯赛题集温故]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/157291719</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/157291719</guid><author>Ruially</author><pubDate>Fri, 23 Jan 2026 15:21:21 +0800</pubDate><description><![CDATA[L1-025 正整数A+B通过这道题，我学到了几个函数的用法。接下来，我将回顾我做这道题遇到的一些困难，以及如何解开这些困难的过程。我遇到的第一个困难就是——如何用代码判断a与b是否是【1，1000】内的正整数。我又将我的问题分解了一下：（1）怎样判断a，b是数字；（2）怎样判断a，b在【1，1000】里面。显然，（1）我不会，（2）题我会。我目前只需要解决（1）即可。isdigit（）函数通常可以判断（）里面的char类型是不是int类型的一个函数。so easy！就有了下面的初步代码：


现在，已经解]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——二分法（1）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156279232</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156279232</guid><author>Ruially</author><pubDate>Sat, 27 Dec 2025 19:26:38 +0800</pubDate><description><![CDATA[今天，通过B站的视频，解决了我对于区间的开闭的问题。下面，我通过下面一道题来回顾一下。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——排序（3）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156133348</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156133348</guid><author>Ruially</author><pubDate>Sun, 21 Dec 2025 20:31:28 +0800</pubDate><description><![CDATA[我来啦！今天依旧是的一题多解。（不厌其烦地附上题目）【题目描述】给定一个长度为N（不大于500）的正整数序列，请将其中的所有奇数取出，并按升序输出。【输入】第1行为 N；第2行为 N 个正整数，其间用空格间隔。【输出】增序输出的奇数序列，数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】10【输出样例】1,3,5,7,9方法四：冒泡排序我在大佬源代码的基础上，将q[j]与q[j+1]的复制与赋值换成了swap（）函数！嘻嘻，我会a little bit举一反三了！]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——排序（2）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156114968</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156114968</guid><author>Ruially</author><pubDate>Sat, 20 Dec 2025 20:16:44 +0800</pubDate><description><![CDATA[这是一个一题多解的博客！题目描述】给定一个长度为N（不大于500）的正整数序列，请将其中的所有奇数取出，并按升序输出。【输入】第1行为 N；第2行为 N 个正整数，其间用空格间隔。【输出】增序输出的奇数序列，数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】10【输出样例】1,3,5,7,9方法一：插入法这就是插入法的代码模板。它的原理很简单，就是以一个乱序的数组中的第一个数为基石，通过后面的数与前面的数字比较，将数字逐一为它们找到自己的位置。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（6）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156095806</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156095806</guid><author>Ruially</author><pubDate>Fri, 19 Dec 2025 19:58:52 +0800</pubDate><description><![CDATA[这是一道很经典的题。当然，我一开始也没有做出来，但是！我当时发现了一些规律！只是当时不知道怎么表达而已（傲娇）。下图，是汉诺塔问题的抽象模型。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（5）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156061051</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156061051</guid><author>Ruially</author><pubDate>Thu, 18 Dec 2025 19:50:42 +0800</pubDate><description><![CDATA[了。首先定义，这个递归函数的主要作用是标记没有找到配对的“（”，只要发现了“（”，我们就调用这个奇妙的递归函数。只要我们发现了有“）”与之配对，我们就不标记“（”而这个递归函数，也可以保障有配对的“）”不会被标记。这个指针pin也很是精妙，它“继承”了k旧的值，并且可以帮助标记没有配对的“（”。因为递归就像多层大蛋糕，进行完一层后，会自动回到下一层。这段代码里也有很多我新学到的函数。下面是我查到的相关资料。1.fill()：用一个给定值去填充所有元素。fill_n()：用一个给定值填充前n个元素。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——排序（1）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/156025888</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/156025888</guid><author>Ruially</author><pubDate>Wed, 17 Dec 2025 20:21:01 +0800</pubDate><description><![CDATA[这次，我来分享一下我新学习的！网上有很多大佬整理了归并排序，并且超级厉害的做了动图。就是这个大佬的下面我想回顾总结一下我现在对归并排序的认识与理解，并且把它融入这道题中。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（4）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/155965918</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/155965918</guid><author>Ruially</author><pubDate>Tue, 16 Dec 2025 09:07:52 +0800</pubDate><description><![CDATA[其实本来是一段很简单的代码，但是这个题带给我的收获很大，所以我决定来做一个自己的反思回顾。来讲一下我做这道题遇到的问题（主要是解决运行超时的问题）：1）我一开始并没有用记忆化，导致运行超时。2）我用了一个记忆化（但是是错的）!pell(k)试图判断返回值是否为 0，但pell(k)本身又会无限递归，永远无法执行到后续逻辑；你以为这就结束了？但是却运行超时了。why？]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（3）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/155906689</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/155906689</guid><author>Ruially</author><pubDate>Mon, 15 Dec 2025 20:00:02 +0800</pubDate><description><![CDATA[我们把目光聚焦到第k位，让k、k+1、k+2······等位上的字母，均有机会坐到第k位上，而第k+1位、k+2位呢？那是下一个paixu（）函数需要管的事，不归这一个函数管。（这就是我总是没有思路的原因，总是看着第k位上的，想着以后那些位该咋办）笨笨的我依旧没能做出来，仍然是参考大佬的做法，我现在来进行反思回顾大佬的思路，汲取经验。大佬的思路应该是：先固定当前位，再去固定下一位，直到所有的位置都被固定住。2）接着，3 => 2 => 1有着明显的递减规律，3是6的一半。针对第三个点，答案就很显然啦！]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（2）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/155905615</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/155905615</guid><author>Ruially</author><pubDate>Sun, 14 Dec 2025 10:02:00 +0800</pubDate><description><![CDATA[这是一道比较简单的递归题，根据高中数学的排列组合知识很容易就能解决。]]></description><category></category></item><item><title><![CDATA[笨人小白的温故知新——递归（1）]]></title><link>https://blog.youkuaiyun.com/Ruially/article/details/155892967</link><guid>https://blog.youkuaiyun.com/Ruially/article/details/155892967</guid><author>Ruially</author><pubDate>Sun, 14 Dec 2025 09:41:52 +0800</pubDate><description><![CDATA[2*5是由10分解而来的，这时，我们很容易想到递归：20的分解数有一部分是10的分解数贡献的。因为要保证因数>=前一次分解出的因数，所以是fenjie(k/i,i)先通过分解20来找规律：20 = 20 = 2*10 = 4*5 = 2*2*5 共4种。因为最先提出来的因数小，所以k/i才有可能继续提出因子，所以k/i作为下一步要分解的数。20 = 2*10 = 10 *2，显然这是两种分解方法是同一种。每进行一次分解，就要保证因数＞=前一次分解出的因数。但这个比较复杂，所以我参考了大佬的做法，现在开始~]]></description><category></category></item></channel></rss>