模拟只会猜题意
文章平均质量分 56
UncleJokerly
Tough days don't last.Tough people do.
展开
-
LeetCode 383.赎金信(模拟,for(char c : 容器)的使用)
最后遍历记录字母出现次数的数组record,如果出现负数说明magazine中的字母不够ransomNote用,则返回false。如果没有出现负数说明ransomNote能由magazine里面的字符构成。因为输入数据都是小写字母,所以可以维护一个长度为26的数组record用于记录每个字母出现的次数。再遍历ransomNote数组,ransomNote数组中的字母每出现一次则减去对应字母的次数。先遍历magazine数组,将magazine数组中出现的字母都记录下来。原创 2024-04-20 10:20:52 · 256 阅读 · 1 评论 -
LeetCode 454.四数相加II(模拟,map.getOrDefault()的使用)
遍历nums3和nums4,在map中寻找是否存在-(nums3[k] + nums4[l]),存在则记录出现的次数,即为符合条件的元组个数。和对应出现的次数放到map中,次数可以使用map.getOrDefault获取。遍历nums1和nums2,将相加的结果。,请你计算有多少个元组。原创 2024-04-20 09:37:42 · 383 阅读 · 0 评论 -
LeetCode 1.两数之和(HashMap.containsKey()、.get、.put操作)
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。整数,并返回它们的数组下标。你可以想出一个时间复杂度小于。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-04-17 10:16:07 · 303 阅读 · 0 评论 -
LeetCode 202.快乐数(HashSet + 按位取数)
所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。判断sum是否重复出现就可以使用unordered_set。这道题目看上去貌似一道数学问题,其实并不是!编写一个算法来判断一个数。原创 2024-04-16 10:48:00 · 479 阅读 · 0 评论 -
LeetCode 349.两个数组的交集(HashSet的使用)
输出结果中的每个元素一定是。[4,9] 也是可通过的。原创 2024-04-16 10:26:04 · 208 阅读 · 0 评论 -
LeetCode 242.有效的字母异位词
最后遍历数组record,如果有个数不为0的字母说明s和t不构成异位词,如果个数全为0,说明构成异位词/如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?注意:Java中获取数组int[]长度用.length,后不加括号。使用长度为26的数组record用于记录每个字母出现的个数。遍历字符串s,给当前出现的字母对应下标的位置个数+1,遍历字符串t,给当前出现的字母对应下标的位置个数-1,中每个字符出现的次数都相同,则称。,编写一个函数来判断。原创 2024-04-10 10:53:17 · 219 阅读 · 0 评论 -
LeetCode 142.环形链表II(数学公式推导)
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。返回索引为 1 的链表节点链表中有一个环,其尾部连接到第二个节点。返回索引为 0 的链表节点链表中有一个环,其尾部连接到第一个节点。返回 null链表中没有环。原创 2024-04-10 10:30:50 · 950 阅读 · 0 评论 -
LeetCode 面试题 02.07.链表相交(判断两个结点是否相同)
此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。在 B 中,相交节点前有 1 个节点。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。原创 2024-04-07 22:23:54 · 924 阅读 · 0 评论 -
LeetCode 19.删除链表的倒数第N个结点
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。给你一个链表,删除链表的倒数第。思路是这样的,但要注意一些细节。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?原创 2024-04-07 11:33:34 · 357 阅读 · 0 评论 -
LeetCode 24.两两交换链表中的节点
交换完后,cur应该指向temp的前一个结点,此时的firstNode指针就是指向了temp的前一个结点,所以交换完后,cur的下一步应该到firstNode。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。设置temp指针,指向secondNode后的结点,即cur后的第三个结点,用来保存下一步要成对交换的第一个结点。设置secondNode指针,指向cur后的第二个结点,设置firstNode指针,指向cur后的第一个结点,设置cur指针从头结点开始向后遍历,原创 2024-04-07 10:58:40 · 293 阅读 · 0 评论 -
LeetCode 206. 反转链表
pre和cur每往前走一步就修改当前结点指针的方向,这时候还需要一个指针temp来保存一下修改前该结点下一个结点的位置,为了修改后cur能走到修改前的下一个结点。为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。之前链表的头节点是元素1, 反转之后头结点就是元素5 ,这里并没有添加或者删除节点,仅仅是改变next指针的方向。如果再定义一个新的链表,实现链表元素的反转,其实这是对内存空间的浪费。原创 2024-04-07 10:19:52 · 387 阅读 · 0 评论 -
LeetCode 59 螺旋矩阵(模拟)
模拟最先要找到的就是每一趟填数的规律,最后归结为由哪几个变量的变化可以控制模拟的路径。把自然思考的方式转换成代码,按路径把数填到新数组中。所有元素,且元素按顺时针顺序螺旋排列的。原创 2024-04-02 22:41:45 · 239 阅读 · 0 评论 -
LeetCode 209 长度最小的子数组(滑动窗口,双指针实现)
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。2子数组[4,3]是该条件下的长度最小的子数组。10O(n)解题思路:(From:代码随想录)原创 2024-04-02 22:18:32 · 339 阅读 · 0 评论 -
LeetCode 977 有序数组的平方(双指针法)
平方后的数列两边大中间小,所以考虑使用双指针从左右两边往中间便利,两边的数进行比较逐一存到新开辟的同样大小的数组result中。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100](Java刷题还是不太习惯)组成的新数组,要求也按。原创 2024-04-02 22:14:11 · 181 阅读 · 0 评论 -
LeetCode 27 移除元素(学习双指针法)
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://是以“引用”方式传递的。也就是说,不对实参作任何拷贝// 在函数里修改输入数组对于调用者是可见的。原创 2024-03-28 10:04:26 · 364 阅读 · 1 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 切面条(递归)
标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。解题思路:我是光想没有想出来结果,找了张纸条撕了撕得出以下规律:0-...原创 2019-03-21 08:53:03 · 156 阅读 · 0 评论 -
团体程序设计天梯赛 L1-008 求整数段和(模拟)
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8输出样例: -3 -2 -1 0...原创 2019-03-27 15:47:51 · 166 阅读 · 0 评论 -
团体程序设计天梯赛 L1-007 念数字(模拟)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,...原创 2019-03-27 15:36:54 · 216 阅读 · 0 评论 -
团体程序设计天梯赛 L1-005 考试座位号(结构体)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行给出一...原创 2019-03-27 10:02:41 · 222 阅读 · 0 评论 -
团体程序设计天梯赛 L1-003 个位数统计 (模拟)
给定一个k位整数N=dk−110k−1+⋯+d1101+d0(0≤di≤9,i=0,⋯,k−1,dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数N。输出格式:对...原创 2019-03-27 08:32:39 · 242 阅读 · 0 评论 -
2015年第六届蓝桥杯C/C++程序设计本科B组省赛 星系炸弹(日期推算)
星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19...原创 2019-03-20 10:54:13 · 348 阅读 · 0 评论 -
团体程序设计天梯赛 L1-002 打印沙漏(模拟)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式...原创 2019-03-27 08:18:29 · 225 阅读 · 0 评论 -
2018年第九届蓝桥杯C/C++程序设计本科B组省赛 明码(二进制转换)
标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是: 第1字节,第2字节 第3字节,第4字节 .... ...原创 2019-03-23 10:09:47 · 242 阅读 · 0 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 蚂蚁感冒(思维&&模拟)
标题:蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】...原创 2019-03-21 17:07:04 · 273 阅读 · 0 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 六角填数(next_permutation)
标题:六角填数 如图【1.png】所示六角形中,填入1~12的数字。 使得每条直线上的数字之和都相同。 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。答案:10解题思路:又一次练习使用全排列next_permutation。先给每个空进行编号,最好在演草本上画下来,这样六条线...原创 2019-03-21 15:25:22 · 205 阅读 · 0 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 打印图形(代码填空)
标题:打印图形 小明在X星球的城堡中发现了如下图形和文字:rank=3 * * ** * * * * *rank=5 * * * ...原创 2019-03-21 10:43:05 · 375 阅读 · 0 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 史丰收速算(代码填空)
标题:史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法。 其中,乘以7是最复杂的,就以它为例。 因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1 同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,...原创 2019-03-21 10:29:23 · 259 阅读 · 0 评论 -
2014年第五届蓝桥杯C/C++程序设计本科B组省赛 李白打酒(递归)
标题:李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabba...原创 2019-03-21 10:08:14 · 321 阅读 · 0 评论 -
团体程序设计天梯赛 L1-011 A-B(各种输入输出分析)
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:I love GPLT! ...原创 2019-03-28 08:44:27 · 296 阅读 · 0 评论 -
团体程序设计天梯赛 L1-009 N个数求和+测试数据(模拟&&最大公约数GCD最小公倍数LCM&&辗转相除法)
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其...原创 2019-03-27 21:43:06 · 384 阅读 · 2 评论 -
团体程序设计天梯赛 L1-015 跟奥巴马一起画方块(四舍五入)
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。输出格式:输出由给定字符C画出的正方形。但是注意到行间距比列...原创 2019-03-28 10:01:13 · 228 阅读 · 0 评论 -
POJ1068 Parencodings(模拟&思维)
Let S = s1 s2…s2n be a well-formed string of parentheses. S can be encoded in two different ways: q By an integer sequence P = p1 p2…pn where pi is the number of left parentheses before the ith righ...原创 2017-05-15 21:31:14 · 352 阅读 · 0 评论 -
2015年第六届蓝桥杯C/C++程序设计本科B组国赛 密文搜索(模拟)
标题:密文搜索福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示以下有n行密码...原创 2019-05-22 09:57:08 · 347 阅读 · 0 评论 -
ZOJ - 4109 Welcome Party(并查集+优先队列)
The 44th World Finals of the International Collegiate Programming Contest (ICPC 2020) will be held in Moscow, Russia. To celebrate this annual event for the best competitive programmers around the wor...原创 2019-04-28 17:42:52 · 1836 阅读 · 0 评论 -
博弈论总结及模板
博弈论讲解 :【算法讲堂】【电子科技大学】【ACM】博弈论基础SWPU-ACM每周算法讲堂-博弈论入门博弈论题目有如下特征:1.有两名选手;2.两名选手交替操作,每次一步,每步都是在有限的合法集合中选取一种进行;3.在任何情况下,合法操作只取决于情况本身,与选手无关;4.游戏的败北条件为:当某位选手需要进行操作时,当前没有任何可以执行的合法操作,则该选手败北。...原创 2019-04-09 21:00:43 · 1074 阅读 · 1 评论 -
HDU - 1850 Being a Good Boy in Spring Festival(Nim博弈模板)
一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地 强烈地 要求洗一次碗某一天早起 给爸妈用心地做回早餐如果愿意 你还可以和爸妈说咱们玩个小游戏吧 ACM课上学的呢~下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的...原创 2019-04-09 20:57:41 · 246 阅读 · 0 评论 -
POJ - 1067 取石子游戏(威佐夫博弈模板)
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。Input输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石...原创 2019-04-09 20:41:12 · 482 阅读 · 0 评论 -
HDU - 2516 取石子游戏(斐波那契博弈模板)
1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".Input输入有多组.每组第1行是2<=n<2^31. n=0退出.Output先取者负输出"Second win". 先取者胜输出"First win".参看Sa...原创 2019-04-09 20:22:09 · 403 阅读 · 0 评论 -
HDU - 1846 Brave Game(巴什博弈模板)
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。当然,除了“勇敢”,我还希望看到“诚信”,无论考试...原创 2019-04-09 20:09:36 · 356 阅读 · 0 评论 -
HDU - 1847 Good Luck in CET-4 Everybody!(博弈论学习--SG函数)
大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此。当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考前的放松,所谓“张弛有道”就是这个意思。这不,Kiki和Cici在每天晚上休息之前都要玩一会儿扑克牌以放松神经。“升级”?“双扣”?“红五”?还是“斗地主”?当然都不是!那多俗啊~作为计算...原创 2019-04-08 21:48:05 · 350 阅读 · 0 评论