
OJ
我可是唐小龙啊
这个作者很懒,什么都没留下…
展开
-
LeetCode 58. 最后一个单词的长度
坚持才能看到希望!加油!原创 2020-03-16 23:27:28 · 175 阅读 · 0 评论 -
LeetCode 57. 插入区间
有些东西坚持下去才会变得更美好,加油!原创 2020-03-15 23:29:16 · 360 阅读 · 0 评论 -
LeetCode 56. 合并区间
必要排序后可以让问题更清晰原创 2020-03-14 23:34:25 · 190 阅读 · 0 评论 -
LeetCode 80. 删除排序数组中的重复项 II
最近做过很多类似的题目,这种思路值得反复打磨使用原创 2020-03-13 23:22:51 · 189 阅读 · 1 评论 -
全排列除法
方法:全排列+剪枝。加油原创 2020-03-12 23:29:20 · 734 阅读 · 0 评论 -
动态规划和滚动数组
动态规划及优化原创 2019-07-25 12:33:59 · 1215 阅读 · 0 评论 -
LeetCode1232---缀点成线
生活中也需要逆向思维。原创 2020-01-15 00:35:53 · 283 阅读 · 0 评论 -
LeedCode1052---爱生气的书店老板
题目描述:今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道...原创 2019-08-07 13:39:29 · 285 阅读 · 2 评论 -
LeetCode445---两数相加 II
题目描述给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 ->...原创 2019-08-09 08:41:31 · 361 阅读 · 0 评论 -
LeetCode41题--First Missing Positive(寻找丢失的最小正整数)
这一题如果不要求时间复杂度O(n),空间复杂度O(1),那还是有很多种办法可以做的,不过既然加了这些限制,就必须考虑用什么算法来求解了。我个人觉得,这一题主要是要想到,长度为n的数组,要找的数最大只可能是n+1,也就是要找的数会小于等于n。然后怎么判断这个数是n+1以内的数呢?通常做法我们是用一个flag数组,遍历一遍就知道哪个数是没有出现了,但是这里只允许O(1)的空间复杂度,所以可以采用在原...原创 2019-04-09 22:47:23 · 506 阅读 · 0 评论 -
LeetCode48--Rotate Image
这一题实际上可以找规律完成,它让我们把整个数组旋转90度。我们可以从外圈开始转,一圈一圈搞定它。一个元素旋转后的位置,取决于本身的位置与当前这个圈的边长。我们简单找几个元素算一下就可以发现规律了(注意:找规律的题一定要保留中间的计算过程,不要急着化简!做数学题和计算机题都是这样)我简单测试了几个数据,已经放在注释里了,感兴趣的可以自己推一推这个过程。如果要问我怎么想到是找规律的?题目不让...原创 2019-04-11 20:33:58 · 236 阅读 · 0 评论 -
LeetCode46--Permutations
这一题本质上就是求全排列,求全排列有很多种方式,这里我使用了一种我平时用的比较多的方法。思路:当我们想要去求"1 2 3 4"的全排列时,我们只需要枚举出来即可。使用四个for循环 啊不当然不是,这个方法只适用于初学for循环才会考虑。我们想求"1234"全排列,其实就是求1开头,剩下数字自由组合 + 2开头,剩下数字互相组合 + 3 开头,剩下数字互相组合 + 4 开头,剩下数字自由组合即...原创 2019-04-11 20:25:12 · 196 阅读 · 0 评论 -
LeetCode45--Jump Game II
这一题思路其实挺明确的,有点类似跳台阶,就是怎么从第一个最快的跑到最后一个元素去,刚开始大家容易被带偏想到贪心算法,但是这一题贪心算法显示行不通,你这次跳的远,但是你到达的台阶可能并不能让你跳的很远,甚至是0直接跳不了,而你中间可能忽略了几匹黑马,他们说不定可以直接跳到终点!(如3 50 3 0 2 6)那么换种思路?我最终是从第一个元素出发,它可以到达某些台阶,我到那些台阶都是跳一次,那么我想...原创 2019-04-11 00:45:17 · 145 阅读 · 0 评论 -
LeetCode44--Wildcard Matching
这一题和第10题的匹配其实思路大致一致,不过需要做一点点优化,不然会超时。大致的思路还是从后往前匹配,这里的’?‘可以匹配任何的字母,相当于前一题的’.’,而 '*'则是匹配空串,或者任意串。任意串的话,则是以当前位置结束的任意串。故当出现星号时,能否匹配取决于这个星号匹配掉待匹配串当前位置往前k个字符组成的串后(可以理解成抵消了这个位置及前面的k个字符),剩余的待匹配串是否能够与星号前的串匹...原创 2019-04-10 23:08:02 · 180 阅读 · 0 评论 -
计蒜客——字符串长度
时间限制1000ms 内存限制65536K 在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫str_len的函数来计算这个字符串的长度,并输出。聪明的你应该已经发现了,这个叫str_len的函数并没有完成,在不修改函数原型的情况下,请完成str_len函数,实现我们上述的功能吧。样例输入 abcdefg 样例输出 7#include <stdio...原创 2018-03-28 22:59:31 · 319 阅读 · 0 评论 -
计蒜客——罗马数字转换成整数
1000ms 65536K 给定一个罗马数字 ss,将罗马数字转换成整数。如罗马数字I,II,III,IV,V分别代表数字 1, 2, 3, 4, 51,2,3,4,5。首先要来了解一下罗马数字表示法,基本字符有 77 个:I、V、X、L、C、D、M,分别表示 11、55、1010、5050、100100、500500、10001000。在构成数字的时候,有下列规则:1、相同的...原创 2018-03-28 23:13:01 · 412 阅读 · 0 评论 -
计蒜客——整数转换成罗马数字
1000ms 65536K 给定一个整数 numnum,将整数转换成罗马数字。如 1,2,3,4,51,2,3,4,5 对应的罗马数字分别为I,II,III,IV,V等,更详细的说明见此 链接。输入格式 第一行输入一个整数 num(1 \leq num \leq 3999)num(1≤num≤3999)。输出格式 输出 numnum 对应的罗马数字。样例输入 123 样...原创 2018-03-28 23:08:00 · 309 阅读 · 0 评论 -
计蒜客——最后一个单词的长度
1000ms 65536K 给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。如果输入中不存在单词,返回 00。注意:“单词”是指不包含空格符号的字符串例如:对于字符串”hello World”(不带引号), 那么返回的结果是 55;对于字符串”abc abc “(不带引号),那么返回的结果就是 33。输入格式输入仅一行,为字符串 ss(长度不...原创 2018-03-28 23:04:28 · 161 阅读 · 0 评论 -
杭电OJ
/*第几天?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 144001 Accepted Submission(s): 51677Problem Description给定一个日期,输出这个日期是该年的第几天。Inp...原创 2017-02-27 17:15:22 · 1516 阅读 · 0 评论 -
杭电OJ2004——成绩转换
/*成绩转换Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 140424 Accepted Submission(s): 61308Problem Description输入一个百分制的成绩t,将其转换成对应的等级,具体转换...原创 2017-02-27 17:12:26 · 319 阅读 · 0 评论 -
杭电2003——求绝对值
/*求绝对值Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 127711 Accepted Submission(s): 62285Problem Description求实数的绝对值。...原创 2017-02-09 00:30:21 · 365 阅读 · 0 评论 -
杭电2002——计算球体积
/*计算球体积Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 151765 Accepted Submission(s): 60772Problem Description根据输入的半径值,计算球的体...原创 2017-02-09 00:28:56 · 287 阅读 · 0 评论 -
杭电2001——计算两点间的距离
/*计算两点间的距离Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 201223 Accepted Submission(s): 70119Problem Description输入两点坐标(X1,Y...原创 2017-02-09 00:27:52 · 304 阅读 · 0 评论 -
杭电2000——ASCII码排序
/*ASCII码排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 160482 Accepted Submission(s): 64810Problem Description输入三个字符后,按各字符...原创 2017-02-09 00:25:16 · 456 阅读 · 0 评论 -
LeetCode10--Regular Expression Matching
这一题从前往后事实上是很难找到办法解决的,当正面无法解决问题时我们不妨换一个角度思考,从后往前匹配。先来个大概的思路:当当前位置字符一样,显然最后是否能匹配取决于前面位置能否能匹配,所以要考虑前面位置是否匹配,而前面位置是否匹配,取决于那个位置值是否匹配(相同?. 等)和那个位置前面的值是否匹配。不难看出,这有点像反递推。接下来我们来考虑细的思路 :当往前推超出了界限,我们需要特判。当一个...原创 2019-04-10 22:21:44 · 256 阅读 · 0 评论 -
字符串Hash
Hash,我们又称散列,指的是我们通过一个散列算法,把输入值变换成另一个输出值,通常来说,是变得更易于我们处理的一个值,输出值的值域通常小于输入值的值域,这个过程也叫映射。在之前的学习中,我用的比较多的主要还是整数的映射,今天碰到一道字符串的题目,所以尝试了一下字符串映射的操作,特此记录。题目:输入一个N和M,其中中间以空格隔开,接下来是N个由三个小字字母组成的字符串和M个同样格式的字符串...原创 2019-03-09 19:12:08 · 1986 阅读 · 0 评论