<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LostStephon的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LostStephon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LostStephon]]></copyright><item><title><![CDATA[网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(神奇的数)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/51223557</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/51223557</guid><author>LostStephon</author><pubDate>Fri, 22 Apr 2016 22:16:17 +0800</pubDate><description><![CDATA[题意分析：
（1）数论的题目，给出一个long long类型的范围[N,M],求出这个范围中满足三个条件的数的个数：
①这个数至少包含('2', '3', '5')中的任意一个数字;
② 这个数不能出现'18';
③这个数能被7整除。
（2）对于第一、三个条件比较好判断，第二个条件可以通过每次将这个数整除10，然后对100取模，看结果是否等于18，如不等于，则再除以10，依次循环，直到除]]></description><category></category></item><item><title><![CDATA[网易互娱2017实习生招聘游戏研发工程师在线笔试第二场（一起消消毒）]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/51223040</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/51223040</guid><author>LostStephon</author><pubDate>Fri, 22 Apr 2016 21:53:51 +0800</pubDate><description><![CDATA[题意分析：
（1）题目是模拟开心消消乐的游戏逻辑，当交换两个相邻的图片时，如果交换后的面板中有连续的三个以上的相同的图片（拍成行或列），那么这些排列成行或列的相同的图形将消失，上面的图形将下落填充中间的空白，下落后有可能再次出现可消除的情况，于是同以上步骤，一直到最后没有可消除为止，求这次交换操作一共可消去多少个图形。
（2）题目对游戏的原型进行了简化：即消去一部分图形之后，没有新的图形产生，]]></description><category></category></item><item><title><![CDATA[网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(图像处理)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/51222670</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/51222670</guid><author>LostStephon</author><pubDate>Fri, 22 Apr 2016 20:35:53 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一个N*M矩阵用来表示灰度图像，矩阵中的每一个数的范围在[0,255]之间，定义7种对矩阵的操作：1.顺时针旋转90度，2.逆时针旋转90度，3.上下翻转180度，4。左右翻转180度，5.给矩阵中的某个子矩阵(定义（x0,y0）为子矩阵的左上角，（x1,y1）为子矩阵的右下角）中的每个数加上一个特定的值val，6.同操作5，给子矩阵中的每个数减去val，7.截取矩阵中的某]]></description><category></category></item><item><title><![CDATA[pat1056Mice and Rice (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49363345</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49363345</guid><author>LostStephon</author><pubDate>Fri, 23 Oct 2015 16:43:29 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一组数代表每个人的初始程序的“得分”，然后按照给出的一个任意排列的顺序，在这个排列中按照顺序每NG个人一组进行PK,每一组中最大的那个人PK胜出进入下一轮，剩余的人本轮淘汰，并且排名相同。不足NG人的小组按照一个小组计算
（2）相信绝大多数人都没有弄清楚这题到底是怎么得出最终的计算排名，原因在以下几个方面：
①那个排列就是出场的顺序，也就是每个人按自己的序号出场的顺序（]]></description><category></category></item><item><title><![CDATA[pat1055The World's Richest (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49362105</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49362105</guid><author>LostStephon</author><pubDate>Fri, 23 Oct 2015 15:27:55 +0800</pubDate><description><![CDATA[题意分析：
（1）给出若干个富人的姓名 年龄 财富值，以及若干个查询条件：前M名年龄在[a,b]之间的富人，并按照财富值递减 年龄递增 姓名递减的优先级顺序输出这些富人信息
（2）水题，简单的排序题，对富人信息包装成结构体，然后排序
可能坑点：
（1）注意使用cin和cout会超时
（2）注意字符串的使用，scanf不支持字符串，但使用C++字符串比较会很简单
#include 
#i]]></description><category></category></item><item><title><![CDATA[pat1054The Dominant Color (20)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49360921</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49360921</guid><author>LostStephon</author><pubDate>Fri, 23 Oct 2015 14:22:35 +0800</pubDate><description><![CDATA[题意分析：
（1）给出M*N的像素矩阵，矩阵的每个元素代表24比特的RGB值，找出这个矩阵中总个数超过一半的像素值（一定存在）
（2）找出一组数中个数超过一半的数，以下有两种常见思路：
①有一种思路是统计每个数出现的次数：先开辟大小为2^24+1的计数数组count，初始化为0，然后依据数组下标作为元素值统计数组中每个元素出现的次数。然后再寻找出现次数最多的那个数。这样做还没等统计完。第二个]]></description><category></category></item><item><title><![CDATA[pat1053Path of Equal Weight (30)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49340081</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49340081</guid><author>LostStephon</author><pubDate>Thu, 22 Oct 2015 22:36:07 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一颗树的父子表示关系，给出每一个节点自身编号和节点权值，然后给出每一个非叶子结点及其子节点的邻接关系，然后找出一条路径使得路径上节点的权值之和等于给定的值，若有多条路径，则按照序列的大小关系输出，序列的大小关系指的是：序列a>序列b,则从序列a和序列b的第一个元素开始，第一次出现在同等位置上的a的元素大于b的元素
（2）使用DFS从根节点开始遍历，然后记录下当前的非叶子节]]></description><category></category></item><item><title><![CDATA[pat1052Linked List Sorting (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49306357</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49306357</guid><author>LostStephon</author><pubDate>Wed, 21 Oct 2015 16:30:50 +0800</pubDate><description><![CDATA[题意分析：
（1）给出内存中链表的节点,节点定义为：address value nextaddress并且给出链表的起始地址，按照原来的格式输出这个链表经过按照value排序后的链表，即：链表节点的个数 起始地址以及每个链表的节点
（2）因为涉及到链表节点的排序，先将链表的定义包装成结构体，然后按照value值进行排序，因为排序后address域没有发生变化，而nextAddress域变成了排]]></description><category></category></item><item><title><![CDATA[pat1051Pop Sequence (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49304803</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49304803</guid><author>LostStephon</author><pubDate>Wed, 21 Oct 2015 15:06:34 +0800</pubDate><description><![CDATA[题意分析：
（1）给出若干个从1到N的排列，并且给出栈的深度，问这些排列是否是从1到N的出栈序列
（2）判断一个序列是否是一个出栈序列受栈的深度、出入栈的顺序的制约：若入栈个数大于栈的最大深度，则此种入栈方式不合法，对应的序列不是出栈序列；另外由于是按序入栈，如出栈的元素在栈顶的下方，此时出栈的方式不合法，对应的序列不是出站序列。
我们可以根据第一个出栈的元素去反推出入栈顺序，再通过比较下一]]></description><category></category></item><item><title><![CDATA[pat1050String Subtraction (20)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49182991</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49182991</guid><author>LostStephon</author><pubDate>Fri, 16 Oct 2015 19:56:28 +0800</pubDate><description><![CDATA[题意分析：
（1）水题，给出两个字符串，按照相对顺序输出字符串1中除去字符串2包含的字符的剩余字符
（2）建议不要暴力，O(mn)的复杂度肯定超时，首先在字符串1输入完之前，我们确实什么也干不了，那就直接用getline取字符串存好，这样效率高。在输入字符串2的时候，我们不要等输入完后再去处理，而应该在输入的时候就去处理，因为是字符，用ASCII来表示就是0~128之间的整数，因此没输入一个字]]></description><category></category></item><item><title><![CDATA[pat1049Counting Ones (30)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49181927</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49181927</guid><author>LostStephon</author><pubDate>Fri, 16 Oct 2015 18:16:22 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一正整数N，求从1到N之间的所有数当中含有1的个数
（2）此题最容易想到的是从1到N遍历，求每个数中包含1的个数，但这样在数字比较大时，肯定超时。如果不遍历，那要怎么去求呢？这就需要寻找数学规律了。我们先从每一位开始：求当某个位置为1时共有有多少个数.以百为为例，如12145、12045、12145.即可能存在三种情况：
①若此数百位本身就等于1，如12145，则大于等]]></description><category></category></item><item><title><![CDATA[pat1048Find Coins (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49156839</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49156839</guid><author>LostStephon</author><pubDate>Thu, 15 Oct 2015 19:29:10 +0800</pubDate><description><![CDATA[题意分析：
（1）给出若干个面值不同的硬币，可以重复，再给出任意一个金额，问是否能在这些硬币当中找出两个面值之和等于所给的金额，若有多种组合，给出具有面值最小的那个组合。
（2）这题是一种超级经典的利用位图排序的例子。可以说如果了解了位图排序的精髓，这题除去输入时间，算法的时间复杂度可以控制在O(1)！！！极大地提高了算法的时间和空间效率。真可谓“大道至简”。有两种思路，第一种给出最容易想到的]]></description><category></category></item><item><title><![CDATA[pat1047Student List for Course (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49155403</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49155403</guid><author>LostStephon</author><pubDate>Thu, 15 Oct 2015 17:25:15 +0800</pubDate><description><![CDATA[题意分析：
（1）此题和1039题正好相反，给出若干个学生的选课表，每个学生的ID由三位大写字母和一位数字组成，后面跟上选的课程总数以及课程的ID。按照课程的ID从小到大的顺序并按照字典序列出选择这门课程的学生的ID,
（2）此题确实和1039题差不多一致，但如果是受1039题思路的引导，极有可能掉入陷进。这也是PAT以“坑”著称的地方。现在是我们要对每门课程维护一个列表，若某个学生选择了课程]]></description><category></category></item><item><title><![CDATA[pat1046Shortest Distance (20)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49132079</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49132079</guid><author>LostStephon</author><pubDate>Wed, 14 Oct 2015 22:03:19 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一个环形公路中几个相邻出口之间的距离，然后任意给出若干对出口，求出这些出口之间最短的距离，（即从一个出口沿着两个方向到达另外一个出口的最短距离）
（2）建议大家画一个示意图，分别求出沿着两个方向遍历到达另外一个出口的距离，然后比较这两个距离
（3）这题坑在第三个案例上面，即使是时间复杂度为O（n）的如此简单算法，PAT的出题人也要在此设坑，简单的遍历都会超时，看来我们不]]></description><category></category></item><item><title><![CDATA[pat1045Favorite Color Stripe (30)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49103371</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49103371</guid><author>LostStephon</author><pubDate>Tue, 13 Oct 2015 21:07:03 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一个有若干个数的偏好序列，同时给出另一个任意的数组，并且参照前面序列中元素出现的相对顺序（某些元素可以丢弃）依次从前往后选择数组中的元素组成一个新的数组，求这个数组的最大长度。
（2）由于求解的是从数组A中下标范围到i这个序列的顺序，选择数组B中下标范围到j的最长数组的长度，可以分解为：A中下标范围到i,B中下标范围到j-1与A中下标范围到i-1,B中下标范围到j这两个子]]></description><category></category></item><item><title><![CDATA[pat1044Shopping in Mars (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49100507</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49100507</guid><author>LostStephon</author><pubDate>Tue, 13 Oct 2015 16:33:58 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一个整数序列，截取这个序列中的一段连续的子序列使得这个子序列的和等于给定的值，若不存在这样的序列，则找出序列的和大于给定值并且差值最小的。如有多个这样的序列，按照左边界的升序输出这些边界
（2）一种简单的方法是从第一个位置开始，依次计算从第1、2..开始的连续和到等于M或者第一次大于M,在从第二个位置开始依次类推，这样时间复杂度就是o（n^2），很遗憾，这样的方案会导致有]]></description><category></category></item><item><title><![CDATA[pat1043Is It a Binary Search Tree (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49099555</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49099555</guid><author>LostStephon</author><pubDate>Tue, 13 Oct 2015 16:15:42 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一数列，判断这个数列是否是一个二叉查找树的先序遍历序列或镜像二叉查找树的先序遍历序列，所谓镜像二叉查找树就是二叉查找树所有节点的左右子树交换后的二叉树
（2）二叉查找树有一个特性就是根节点左边所有子树节点的值小于根节点的值，右子树所有节点的值大于或等于根节点的值，同时左右子树也是一颗二叉查找树
（3）由（2）的递归的性质：于是判断这个序列是否是BST或者镜像BST先序遍]]></description><category></category></item><item><title><![CDATA[pat1042Shuffling Machine (20)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49081597</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49081597</guid><author>LostStephon</author><pubDate>Mon, 12 Oct 2015 22:39:04 +0800</pubDate><description><![CDATA[题意分析：
（1）给出54张扑克牌的原始顺序，给出任意1~54的排列，此排列意味着对本次扑克牌位置的调整，数组中的序号为a的值b,意味着将原来在a位置的扑克牌移动到第b号位置，求按此排列洗牌K次后的顺序。
（2）因为每次所给的调整顺序一样，对于原始序列中的第i个牌，我们暂且就将他记为i，追踪它在K次调整后“花落谁家”，假设为j，然后用另外一个数组newOrder在第j个位置存i.这样每一张扑克]]></description><category></category></item><item><title><![CDATA[pat1041Be Unique (20)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49080153</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49080153</guid><author>LostStephon</author><pubDate>Mon, 12 Oct 2015 21:14:39 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一组数，找出这组数中第一个在此数列中只出现一次的数
（2）水题，开辟一个数组作为位图索引使用，每出现某个数一次，就在索引位置+1，同时使用vector记录下原来的数组顺序,以便后面遍历使用，当第一次遍历到某个数时，其索引数组对应的位置值为1，则输出
可能坑点：
（1）不要对数组中每个元素采用循环遍历的方法，否则超时
#include 
#include 
#incl]]></description><category></category></item><item><title><![CDATA[pat1040Longest Symmetric String (25)]]></title><link>https://blog.youkuaiyun.com/LostStephon/article/details/49078355</link><guid>https://blog.youkuaiyun.com/LostStephon/article/details/49078355</guid><author>LostStephon</author><pubDate>Mon, 12 Oct 2015 19:12:42 +0800</pubDate><description><![CDATA[题意分析：
（1）给出一串字符串，求出其中最长的回文字串的长度
（2）比较简单的做法是从第一个字符开始，依次同时向两边扩散检索，直至扫描整个字符串串结束。但需要注意子字符串长度为奇数和偶数时他们的扫描是不同的。
（3）有一种比较难以想到动态规划做法是：将整个串str看作要求解的问题，他可以分解为str[0]~str[N-2]、str[1]~str[N-1]、str[1]~str[N-1]这三]]></description><category></category></item></channel></rss>