LeetCode OJ
文章平均质量分 55
捡石子的小孩
这个作者很懒,什么都没留下…
展开
-
First Bad Version
很久没在OJ上刷题了,不知不觉现在都已经是研究生了。开学才半个月,就感觉研究生生活是这么的无聊,每天不是看论文就是上课(ps:偶尔还打打游戏……)在yyd的建议下,决定重拾刷题的乐趣。在此,也希望有志同道合的小伙伴能加入我这个刷题小分队,大家一起快乐学习,共同进步 废话少说,先来看看我2年后复出的第一道算法题吧^_^ (大牛看到这里就结束了……) First Ba原创 2015-09-18 10:40:06 · 2330 阅读 · 0 评论 -
H-Index
题意:现在给你n篇论文,然后告诉你每篇论文的引用次数,求一个最大的整数h,使得有h篇论文的引用次数至少为h次,且剩下的n-h篇论文的引用次数不超过h次。 从题意中可知道0<=h<=n,考虑边界情况,h=0:没有论文或者所有论文的引用次数都是0次;h=n:有n篇论文,且每篇论文的引用次数都至少为n次。理解清楚边界情 况后,中间的其实也就知道了。首先还是考虑暴力方法,即h从n→1枚举,然后统计引用数>=h的论文数cnt,若cnt==h,则找到。时间复杂度O(n^2),显然不行。原创 2015-09-18 11:17:37 · 4284 阅读 · 0 评论 -
Two Sum
题意:给你一个包含n个数的数组,要求找出两个数,使得他们的和等于指定的数target。思路:先在[1,n]之间确定一个index1,然后再在[index1+1,n]之间找index2,使得nums[index1]+num[index2]==target.按照这种思路不做任何优化,时间复杂度为O(n^2).优化:先将数组排序,这样在找index2的时候就可以用二分查找了.时间复杂度O(nlogn)排序后改变了原数组元素的位置,所以我的做法是先保存原数组,最后再根据找到的两个数反过去去找对应在原数组的位置原创 2015-09-18 16:57:34 · 2436 阅读 · 0 评论 -
Longest Substring Without Repeating Characters
题意:给你一个字符串,求一个连续的没有重复字符的最大子串。思路:设置两个数组flag[256]和pos[256],flag记录某个字符是否包含在当前子串中,pos记录某个字符在当前子串中的位置。当出现重复字符ch时,就把当前字符串中ch前面的字 符全部去掉,并更改flag和pos。算法流程:b a c a b c b b ↑ (i=3,len=3,flag['b','a','c']=true,pos['b','a','原创 2015-09-21 20:02:40 · 2375 阅读 · 0 评论 -
Longest Palindromic Substring
题意:求一个字符串s的最长回文子串。思路:dp[i][j]表示s[i,j]是否为回文字符子串(true or false) 则有状态转移方程:dp[i][j]=true,if dp[i+1][j-1]==true&&s[i+1]==s[j-1]原创 2015-09-23 17:54:42 · 2412 阅读 · 0 评论 -
Nim Game
一道简单的博弈题目,给定n个石子,如果想要先手赢的话,则必须有当石子数为n-1或n-2或n-3时先手输。所以可以得到一个序列:true,true,true,false,true,true,true,false,true……发现是一个找规律的题目,即 if n%4==0 return false,else return true原创 2015-10-13 16:23:26 · 2442 阅读 · 0 评论