Search a 2D Matrix II
摘要:这道题的关键在于:要在查找的每一步缩小搜索范围,每一次都在数组的查找范围中剔除一行或者一列,直到找到要查找的数字或者查找范围为空。 因此,要选择左下角或者右上角作为搜索的起始点。
阅读全文
posted @
2016-05-06 15:31
summerkiki
阅读(120)
推荐(0)
3Sum
摘要:C++ STL sort原理与用法: //待补充... **一定要注意边界条件的限制
阅读全文
posted @
2016-05-05 19:02
summerkiki
阅读(122)
推荐(0)
Two Sum
摘要:这道题有三种解法: 1.暴力求解,用两层for循环,遍历所有可能的情况,时间复杂度是O(n2) 2.先将数组排序,头尾各设置一个指针,左右两边夹逼寻找,但是这道题要返回的是数的索引,所以这种方式不太合适 3.使用hash的方式,将hash的关键字设置为数组元素,关键字对应着数组元素的索引(要注意ha
阅读全文
posted @
2016-05-04 14:23
summerkiki
阅读(123)
推荐(0)
Reverse Words in a String
摘要:注意题目的特殊要求: 最后结果前后不能有空格,每个单词之间的空格只能有一个。 这里使用了string类的resize函数,将s变为长度为j的字符串(删除多余字符,或者补默认字符)。 这种方法没有申请新的空间,相当于原地重新构建字符串,通过i来不断寻找下一个单词的位置。
阅读全文
posted @
2016-04-28 18:37
summerkiki
阅读(141)
推荐(0)
String to Integer(atoi)
摘要:atoi()函数将C类型的字符串转换为int值。 1.忽略字符串开头的空格直至遇到非空格字符 2.字符串的开头可以有'+'或者'-',正号或负号后接十进制数字 3.所有数字后面的非法字符都将被忽略,且对函数功能不产生任何影响 4.如果第一个非空格序列非法或者字符串为空或者只有空格,则不进行任何转换并
阅读全文
posted @
2016-04-24 21:51
summerkiki
阅读(258)
推荐(0)
字符串循环左移
摘要:题目: 给定一个字符串S[0...N-1],要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a','b'移动到字符串的尾部,得到新的字符串"cdefab":即字符串循环左移k位。 算法要求:时间复杂度O(N),空间复杂度为O(1) *循环左移k位等价于循环右移N-k位
阅读全文
posted @
2016-04-23 15:53
summerkiki
阅读(3175)
推荐(0)
Longest Valid Parentheses
摘要:因为要算匹配长度,所以要记录起始的位置。思路上要分三种情况吧,一种是完全匹配,一种是未匹配的是‘)’,一种是未匹配的是‘(’。如果发现没有左括号可以和右括号匹配,那么只要把右括号位置设置为start,重新开始新一轮的寻找就可以了;如果没有右括号可以和左括号匹配,则要用当前位置减去堆栈栈顶的左括号位置
阅读全文
posted @
2016-04-10 11:28
summerkiki
阅读(155)
推荐(0)
Evaluate Reverse Polish Notation
摘要:一开始的时候,我return的是result,但是在leetcode上有一个测试用例无法通过,那就是当只输入一个常量而不进行运算的时候,比如[“18”]。这种情况下应该输出18,而return result则返回0。
阅读全文
posted @
2016-04-10 10:22
summerkiki
阅读(147)
推荐(0)
最短路径条数问题
摘要:单源点的最短路径:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。 求解方法:Dijkstra算法,基本思想是按路径长度递增的次序产生最短路径的算法。若S为已求得最短路径的终点的集合,那么下一条最短路径(设其终点为x)或者弧(v,x),或者是中间只经过S中的顶点而最后到达顶点x的路径。
阅读全文
posted @
2016-04-03 17:58
summerkiki
阅读(4042)
推荐(0)
堆栈_括号匹配
摘要:此题的思路是:最前面的左括号要和最后面的右括号匹配,所以是一种先进后出的思想,使用堆栈最方便,且要注意括号的顺序,不能出现交叉的情况。 我在leetcode上做的时候,一开始没有注意到函数的返回值是bool,自己随便return值,所以出现了wrong answer,修改为返回false和true之
阅读全文
posted @
2016-03-31 22:38
summerkiki
阅读(400)
推荐(0)
编程题_小易的升级之路
摘要:题目: 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并且使得自己的能力值增加bi;如果b
阅读全文
posted @
2016-03-23 09:57
summerkiki
阅读(335)
推荐(0)
链表-Partition List
摘要:struct ListNode* partition(struct ListNode* head, int x) { struct ListNode *p1=(struct ListNode*)malloc(sizeof(struct ListNode)); struct ListNode *p2=
阅读全文
posted @
2016-03-11 16:57
summerkiki
阅读(267)
推荐(0)
链表-Reverse Linked List II
摘要:【题目要求直接翻转链表,而非申请新的空间】 这道题的一个关键在于,当m=1时,需要翻转的链表段前没有其他的结点(leetcode的测试用例不含头结点),这个特例给解题带来了一点小小的困难。一个比较直观、比较方便的想法是在链表中插入一个头结点,这样处理起来方便很多。除此之外,还要注意各种循环边界条件的
阅读全文
posted @
2016-03-10 22:35
summerkiki
阅读(237)
推荐(0)
链表-Reverse Linked List
摘要:有一个问题,leetcode给出的链表测试数据应该是不包含头结点,所以写代码的时候需要注意一下。 还有另外一种解法,就是把所有指针的方向反过来,代码如下。
阅读全文
posted @
2016-03-08 14:48
summerkiki
阅读(173)
推荐(0)
链表-Add Two Numbers
摘要:第一版代码(很挫很罗嗦,不过是第一次做,记录一下成长的脚步!继续努力!) 1 /*struct ListNode { 2 int val; 3 struct ListNode *next; 4 };*/ 5 6 typedef struct ListNode ListNode; 7 8 struct
阅读全文
posted @
2016-03-03 22:42
summerkiki
阅读(196)
推荐(0)