Leetcode 2-Add two numbers Leetcode2-Add two numbersa slightly simple code.ListNode * addTwoNumbers(ListNode * l1, ListNode * l2) { ListNode dummy(0); ListNode * p = &dummy; int sum = 0; while (l1 || l2)
Leetcode 49- Group Anagrams Leetcode49- Group Anagrams遍历一遍 将每个字符串排序之后放进表内 表内存放该字符串属于第几组vector vector string >> groupAnagrams(vector string > &strs) { unordered_map string, int > record; vector vector string >>
Leetcode 11-Container With Most Water Leetcode11-Container With Most Water暴力不可取 首先,自然想到最左边和最右边的wall有着最大的宽度。所以如果不用这个最大的宽度,我们就需要两堵墙有着更大的高度。 设最左边的wall有高度h1 最右边的wall高度h2, 之间宽度为w 则s = w*min(h1,h2) 对于h = min(h1,h2)的wall来说 设再选择any wa
Leetcode 125-Valid Palindrome Leetcode125-Valid Palindrome对撞指针 注意下空字符串。bool isPalindrome(string s) { int i = 0; int j = s.size() - 1; while (i < j) { while (!isalnum(s[i]))++i; while (!isalnum(s[j
Leetcode 215.Kth Largest Element in an Array Leetcode215. Kth Largest Element in an Array最naive的做法自然就是all in sortsort(nums.begin(),nums.end());return nums[nums.size() - k];time complexity: O(nlogn) 然而我们只需要找到第k个最大的数 这样有太多的浪费的操作了
02-线性结构4 Pop Sequence (25分) 02-线性结构4 Pop Sequence (25分) Given a stack which can keep MM numbers at most. Push NN numbers in the order of 1, 2, 3, …, NN and pop randomly. You are supposed to tell if a given sequence of numbers
Maximum Subsequence Sum 复杂度2 Maximum Subsequence Sum (25分) Given a sequence of KK integers { N_1N 1 , N_2N 2 , …, N_KN K }. A continuous subsequence is defined to be { N_iN i , N_{i+1}N i+1 ,
PAT-B1069. 微博转发抽奖 1069. 微博转发抽奖(20)小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数M(<= 1000)、N和S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从1开始)。随后M行,顺序给出转发微博的网友的昵称(不超过20个字符、不包含空格回车的非空字符串)。注意:可
PAT-B1068. 万绿丛中一点红 1068. 万绿丛中一点红(20)对于计算机而言,颜色不过是像素点对应的一个24位的数值。现给定一幅分辨率为MxN的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围8个相邻像素的颜色差充分大。输入格式:输入第一行给出三个正整数,分别是M和N(<= 1000),即图像的分辨率;以及TOL,是所求像素点与相邻点的颜色差阈值,色差超过TOL的点才被考虑。随后N行,每行给
PAT-B1065. 单身狗 1065. 单身狗(25)“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数;随后N行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(<=10000),为参加派对的总人数;随后一行
PAT-B1035. 插入与归并 1035. 插入与归并(25)插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排
PAT-B1003. 我要通过! 我要通过!“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbT
PAT-B1059. C语言竞赛 1059. C语言竞赛(20)C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!其他人将得到巧克力。给定比赛的最终排名以及一系列参赛者的ID,你要给出这些参赛者应该获得的奖品。输入格式:输入第一行给出一个正整数N(<=100
PAT-B1045. 快速排序 1045. 快速排序(25)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主元; 尽管3的左边元素都比它小,但是
PAT-B1040. 有几个PAT 1040. 有几个PAT(25)字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出格式:在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1
PAT-B1044. 火星数字 1044. 火星数字(20)火星人是以13进制计数的:地球人的0被火星人称为tret。 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。 火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jo
PAT-B1051. 复数乘法 1051. 复数乘法 (15)复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1;也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式 R(cos(P) + isin(P))。现给定两个复数的R和P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间
PAT-B1049. 数列的片段和 1049. 数列的片段和(20)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段。给定正整数
PAT-B1061. 判断题 1061. 判断题(15)判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量。第二行给出M个不超过5的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0代表“非”,1代表“是”。随后N行,每行给出一个学生的解答。数字间均以空格分隔。输出格式: 按照输入的顺序输出每个学生的
PAT-B1037. 在霍格沃茨找零钱 1037. 在霍格沃茨找零钱(20)如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其