
Lintcode
文章平均质量分 62
rosychan
这个作者很懒,什么都没留下…
展开
-
【链表】[Lintcode]合并两个排序链表
描述: 将两个排序链表合并为一个新的排序链表 样例: 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 具体思想就是新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中,由于两个输入链表的长度可能不同,所以最终会有一个链表先完成插入所有元素,则直接另一个未完成的链表转载 2017-07-17 11:12:00 · 277 阅读 · 0 评论 -
[Lintcode]爬梯子
描述: 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例: 比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法 返回 3 这个爬梯子问题最开始看的时候没搞懂是让干啥的,后来看了别人的分析后,才知道实际上跟斐波那契数列非常相似,假设梯子有n层,那么如何爬到第n层呢,因为每次只能怕1或2转载 2017-07-17 10:33:20 · 852 阅读 · 0 评论 -
【数组】[Lintcode]加一
描述: 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的最前面。 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4]. 给定 [9,9,9] 表示 999, 返回 [1,0,0,0]. 将一个数字的每个位上的数字分别存到一个一维向量中,最高位在最开头,我们需要给这个数字加转载 2017-07-16 19:17:05 · 381 阅读 · 0 评论 -
[Lintcode]最长公共前缀
描述: 给k个字符串,求出他们的最长公共前缀(LCP) 样例: 在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A" 在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC" 解题思路: 这道题让我们求一系列字符串的共同前缀,没有什么特别的技巧,无脑查找即可,我们定义两个变量i和j,其中i是转载 2017-07-16 17:48:06 · 283 阅读 · 0 评论 -
【堆栈】[Lintcode]有效的括号序列
描述: 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例: 括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。 ''{[()]}''也是有效的!!!!! 这道题让我们验证输入的字符串是否为括号字符串,包括大括号,中括号转载 2017-07-16 16:01:20 · 295 阅读 · 0 评论 -
[Lintcode]三数之和
描述: 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 注意事项: 在三元组(a, b, c),要求a 结果不能包含重复的三元组!!! 样例: 如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是: (-1, 0, 1) (-1, -1, 2)转载 2017-07-15 09:55:36 · 244 阅读 · 0 评论 -
[Lintcode]罗马数字转整数
描述: 给定一个罗马数字,将其转换成整数。 返回的结果要求在1到3999的范围内。 样例: IV -> 4 XII -> 12 XXI -> 21 XCIX -> 99 罗马数转化成数字问题,我们需要对于罗马数字很熟悉才能完成转换。以下截自百度百科: 罗马数字是最早的数字表示方式,比阿拉伯数字早2000多年,起源于罗马。 如今我们最常见的罗马数字转载 2017-07-13 15:07:19 · 289 阅读 · 0 评论 -
[Lintcode]主元素
描述: 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的【二分之一】。 注意事项 You may assume that the array is non-empty and the majority number always exist in the array. 样例 给出数组[1,1,1,1,2,2,2],返回 1 比较转载 2017-07-13 10:54:43 · 186 阅读 · 0 评论 -
[Lintcode]带环链表
描述: 给定一个链表,判断它是否有环。 样例 : 给出 -21->10->4->5, tail connects to node index 1,返回 true 思路: 使用两个指针,初始时两个指针均指向链表头位置,然后一个指针每次走两步,一个指针每次走一步,如果在循环过程中遇到两个指针相等,则说明有循环返回true。如果出现一个指针无法继续往下走,则退出循环返回false转载 2017-07-13 10:13:31 · 189 阅读 · 0 评论 -
[Lintcode]翻转链表
翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 分析: /** * Definition of ListNode * * class ListNode { * public: * int val; * ListNode *next; * * ListN转载 2017-07-12 20:56:33 · 229 阅读 · 0 评论 -
[lintcode]最长回文子串
问题描述: 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。 哪家公司问你的这个题? Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Mi转载 2017-07-12 19:23:49 · 236 阅读 · 0 评论 -
[lintcode]二叉树的最大深度
问题描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 样例: 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3. 思路分析: 遍历每个节点,返回该节点左右子树中深度较大的一个 /** * Definition of TreeNode:转载 2017-07-08 10:44:46 · 206 阅读 · 0 评论 -
[未解决][lintcode]带最小值操作的栈
解法一:http://www.cnblogs.com/grandyang/p/4091064.html 解法二:http://blog.youkuaiyun.com/kkdd2013/article/details/51919451 调试都没有通过转载 2017-07-08 10:13:27 · 187 阅读 · 0 评论 -
容易_431_反转整数(7)
后备知识: 1.long long 表示的是64bit int 表示的是32bit 2.INT_MIN:int取值范围内的最小值;INT_MAX:int取值范围内的最大值 32位的int型的取值是2147483647 到 -2147483648,但是,在C/C++语言中,你不能直接使用 -2147483648 来代替最小负数,因为它不是一个数,而是一个表达式。表达式是:“对正数214748转载 2017-07-07 11:17:34 · 245 阅读 · 0 评论 -
中等_384_最长无重复字符的子串(6)
class Solution { public: /** * @param s: a string * @return: an integer */ int lengthOfLongestSubstring(string s) { // write your code here int m[256]转载 2017-07-07 09:15:07 · 246 阅读 · 0 评论 -
容易_82_落单的数(5)
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 样例 给出 [1,2,2,1,3,4,3],返回 4 思路:通过异或,相同的数结果为0,那么最后的结果一定是落单的数字。 参考代码: class Solution { public: /** * @param A: Array of intege原创 2017-07-06 15:35:04 · 217 阅读 · 0 评论 -
困难_65_两排序数组的中位数(4)
http://www.cnblogs.com/grandyang/p/4465932.html 转载 2017-07-06 15:07:25 · 198 阅读 · 0 评论 -
容易_167_链表求和(3)
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null /** * Definition for singly-linked list. * struct Lis原创 2017-07-06 10:20:46 · 212 阅读 · 0 评论 -
容易_53_翻转字符串(2)
http://www.cnblogs.com/grandyang/p/6065544.html原创 2017-07-05 18:53:40 · 160 阅读 · 0 评论 -
容易_56_两数之和(1)
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 样例 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2]. solution: 方法一:使原创 2017-07-04 15:04:12 · 342 阅读 · 0 评论 -
容易_204_单例(37%)
单例模式: 单例 是最为最常见的设计模式之一。对于任何时刻,某个类只存在且最多存在一个具体的实例。 ---------------------------------------------------- C++实现单例模式的思路是:类成员包含一个类对象的指针,在构造函数执行之前加一道防线,通过一个函数检查是不是已经产生过一个对象了,如果产生了,就直接返回这个指针即可,如果没有产转载 2017-07-03 18:08:29 · 261 阅读 · 0 评论 -
入门_463_整数排序(35%)
给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。 样例 对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。 1.冒泡排序 算法思路很简单,遍历数组,把当前数字的后面所有的数字都遍历一遍,遇到小的跟当前数字交换,这样遍历的过程中,所有大的数字就像气泡一样都到数组的后面去了,这也是为啥叫冒泡排序转载 2017-07-03 15:44:13 · 206 阅读 · 0 评论