随笔分类 -  LeetCode

摘要:1 class Solution 2 { 3 public: 4 int romanToInt(string s) 5 { 6 map Map = {{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}}; 7 int sum ... 阅读全文
posted @ 2017-02-20 16:09 Strawberry丶 阅读(167) 评论(0) 推荐(0)
摘要:罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。1、重复数次:一个罗马数字重复几次,就表示这个数的几倍。2、右加左减:2.1 在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。2.2 在较大的罗马数字的左边记上较小的罗马数字,表 阅读全文
posted @ 2017-02-20 15:43 Strawberry丶 阅读(179) 评论(0) 推荐(0)
摘要:1 class Solution { 2 public: 3 void merge(vector& nums1, int m, vector& nums2, int n) { 4 int i = m - 1; 5 int j = n - 1; 6 int k = m + n - 1; 7 while(i >=... 阅读全文
posted @ 2017-02-19 03:23 Strawberry丶 阅读(181) 评论(0) 推荐(0)
摘要:【思路】将每一个(0,0)点坐标存入multimap中,再在遍历时将行和列清零,代码如下: 阅读全文
posted @ 2017-02-19 02:58 Strawberry丶 阅读(181) 评论(0) 推荐(0)
摘要:【思路】 a.因为两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1); b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2) c.由a、b假设可以得出总跳法为: f(n) = f(n-1) + f(n-2) d.然后通过实际的情况可以得出 阅读全文
posted @ 2017-02-18 02:52 Strawberry丶 阅读(208) 评论(0) 推荐(0)
摘要:【思路】该题题干不是很明确,只能根据用例来理解什么样的字符串才是符合题意的,本题关键在于几个标志位的设立,将字符串分为几个部分,代码如下: 阅读全文
posted @ 2017-02-17 19:25 Strawberry丶 阅读(271) 评论(0) 推荐(0)
摘要:【思路】此题与56题思路相同,只是多了一个函数接口,代码如下: 阅读全文
posted @ 2017-02-16 17:24 Strawberry丶 阅读(256) 评论(0) 推荐(0)
摘要:1 /** 2 * Definition for an interval. 3 * struct Interval { 4 * int start; 5 * int end; 6 * Interval() : start(0), end(0) {} 7 * Interval(int s, int e) : start(s), end(e... 阅读全文
posted @ 2017-02-10 13:51 Strawberry丶 阅读(157) 评论(0) 推荐(0)
摘要:本题要实现strstr()函数,可以用两种字符串的模式匹配算法来实现: 第一种算法(简单模式匹配算法): 第二种算法(KMP算法): 由上可知KMP算法的效率比BF算法要高得多。 阅读全文
posted @ 2017-02-07 14:26 Strawberry丶 阅读(175) 评论(0) 推荐(0)
摘要:本题算法很简单,但利用引用保存头结点的方法值得学习,代码如下: 阅读全文
posted @ 2017-02-06 13:46 Strawberry丶 阅读(159) 评论(0) 推荐(0)
摘要:括号匹配问题,使用栈的特点,匹配则出栈,否则入栈,最后栈为空则全部匹配。代码如下: 阅读全文
posted @ 2017-02-05 15:49 Strawberry丶 阅读(155) 评论(0) 推荐(0)
摘要:本题可转化成2Sum问题,但不同的是需要注意有可能有多值,需要在添加过程中去掉重复的元素。代码如下: 阅读全文
posted @ 2017-02-05 15:09 Strawberry丶 阅读(156) 评论(0) 推荐(0)
摘要:本题题意是要自己写一个atoi函数(将字符串转换成整数),思想很简单,关键是有几处细节需要考虑: 1.数字前面有空格,如s=" 123456",空格需舍弃。2.数字前出现了不必要或多于的字符导致数字认证错误,输出0。如s=" b1234",s=" ++1233", s=" +-1121"。3.数字中 阅读全文
posted @ 2017-02-02 16:16 Strawberry丶 阅读(1101) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/ywl925/p/3507945.html ID Question Diff Freq Data Structure Algorithms 阅读全文
posted @ 2017-02-02 15:07 Strawberry丶 阅读(274) 评论(0) 推荐(0)
摘要:本题我最开始的思路是,将两数组合并后排序,找出中位数返回。不过很明显是超时的。 下面是我在http://blog.csdn.net/yutianzuijin/article/details/11499917看到的思路: 首先假设数组A和B的元素个数都大于k/2,我们比较A[k/2-1]和B[k/2- 阅读全文
posted @ 2017-02-01 10:42 Strawberry丶 阅读(207) 评论(0) 推荐(0)
摘要:通过把未访问的结点放到unordered_map中来判断是否重复,代码如下: 阅读全文
posted @ 2017-01-31 18:24 Strawberry丶 阅读(188) 评论(0) 推荐(0)
摘要:本题题意是指将两个数倒序存储在链表中,再将两数之和同样存储在链表中输出。 我最开始的思路是将每一位相加,再考虑是否进位,但这时就需要考虑一些情况,比较麻烦。 于是我决定采取另一种在网上新学到的方法:这个方法就是将链表中的数字串起来,当做一个long,例如2->4->5,可以根据题目具体要求转化成lo 阅读全文
posted @ 2017-01-29 21:57 Strawberry丶 阅读(292) 评论(0) 推荐(0)
摘要:1.首先想到的方法就是两个for循环全部遍历,代码如下,可通过,但效率太低 2.使用unordered_map,遍历vector中每个元素,并在hash表中通过find()查找目标元素,若找到则写入结果,否则将当前元素加入到hash表中。(每次调用find()函数是为了判断当前元素与其前面的元素之和 阅读全文
posted @ 2017-01-25 19:05 Strawberry丶 阅读(294) 评论(0) 推荐(0)