LintCode
沐清浅
这个作者很懒,什么都没留下…
展开
-
整数排序
问题描述:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。 样例 对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。 思路:采用冒泡法排序,两层嵌套循环,第一层(外层)的MAX=数组元素个数-1,第二层(内层)的MAX=数组元素个数-第一层的计数j-1,主要进行的是A[j]与A[j+1]的比较。 遇到的主要问题:原创 2017-08-01 13:51:25 · 371 阅读 · 1 评论 -
Valid Parentheses有效的括号序列
Description Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. Example The brackets must close in the correct order, “()” and “()[原创 2017-09-01 11:37:20 · 289 阅读 · 0 评论 -
最长无重复字符的子串
描述:给定一个字符串,请找出其中无重复字符的最长子字符串。 样例 例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。 对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。原创 2017-08-16 09:22:14 · 206 阅读 · 0 评论 -
最长公共前缀
描述:给k个字符串,求出他们的最长公共前缀(LCP) 样例 在 “ABCD” “ABEF” 和 “ACEF” 中, LCP 为 “A” 在 “ABCDEFG”, “ABCEFG”, “ABCEFA” 中, LCP 为 “ABC” 新知识点:vector<string> strs既可以是一维的,也可以是多维的。在这里讲解三维的初始化。 vector<string> str;原创 2017-08-25 15:30:47 · 829 阅读 · 0 评论 -
罗马数字转整数
描述:给定一个罗马数字,将其转换成整数。返回的结果要求在1到3999的范围内。 思路:罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000),当小的位于大的之前时,就是大的减去小的;当小的位于大的之后时,就是大的加上小的。根据这一规则,可以想到先转换第一个字母,然后默认加上第二个字母,如果第二个字母比第一个字母代表的整数大,就再减去2倍的第一个字原创 2017-08-22 10:04:17 · 321 阅读 · 0 评论 -
翻转链表
描述:翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路:刚开始不是很懂,后面参考网上,也不是很理解。后来在论坛求助,感谢论坛里面大神@qq_36782456@ccssddnn218的帮助!原创 2017-08-06 08:33:03 · 206 阅读 · 0 评论 -
翻转字符串
描述:给定一个字符串,逐个翻转字符串中的每个单词。 说明 单词的构成:无空格字母构成一个单词 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个 样例: Given s = “the sky is blue”, return “blue is sky the”.原创 2017-08-03 16:10:50 · 247 阅读 · 0 评论 -
二叉树的最大节点
描述:在二叉树中寻找值最大的节点并返回。 样例 给出如下一棵二叉树: 返回值为 3 的节点。 思路:可以应用递归调用遍历左右子树,如果出现了左(右)子树大于根节点,就将左右节点赋值给根节点。 class Solution { public: /** * @param root the root of binary tree * @return the原创 2017-08-01 13:03:25 · 475 阅读 · 0 评论 -
反转整数
描述:将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。 样例 给定 x = 123,返回 321给定 x = -123,返回 -321 思路:联想到字符串翻转函数reserve(),所以考虑先将数据由整型转换到字符串型,然后由字符串型转换到整型。当结果溢出时,正数整型数据会产生负数形式。class Solution {public: /**原创 2017-08-04 15:58:08 · 363 阅读 · 0 评论 -
落单的数
描述:给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 样例 给出 [1,2,2,1,3,4,3],返回 4 思路:把每个数和包括它自己在内的每个数依次进行比较,如果相等,计数加1。最后如果总计数==1,那么即为落单的数。class Solution {public: /** * @param A: Array of integers.原创 2017-08-04 14:46:01 · 458 阅读 · 0 评论 -
链表求和
描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null原创 2017-08-02 16:05:50 · 252 阅读 · 0 评论 -
带环链表
描述:给定一个链表,判断它是否有环。 思路:采用追赶的方式,设立两个指针slow,fast,都从头结点head开始,每次分别前进一步,两步。如果存在环,两者最终相遇,否则fast会碰到NULL结束。class Solution {public: /** * @param head: The first node of linked list. * @return: T原创 2017-08-16 16:20:51 · 195 阅读 · 0 评论 -
最长回文子串
描述:给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。 样例 给出字符串 “abcdzdcab”,它的最长回文子串为 “cdzdc”。 新知识点:回文的含义是:正着看和倒着看相同,如abba和yyxyy。 substr(start, length)//截取从start开始,长度为length的字串 思路原创 2017-08-16 14:15:26 · 267 阅读 · 0 评论 -
两数之和
描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 注意事项: 你可以假设只有一组答案。样例 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].原创 2017-08-02 13:28:06 · 230 阅读 · 0 评论 -
斐波纳契数列
查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …样例 给定 1,返回 0给定 2,返回 1给定 10,返回 34思路:通过定义三个变量来进行class Solution {public: /*原创 2017-08-02 11:07:00 · 296 阅读 · 0 评论 -
带最小值操作的栈
描述:实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。 你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。 样例:push(1)pop() // return 1push(2)push(3)min() // return 2push(1)min() // return 1思路:刚开始没理解初始化什么意思,以为按照原创 2017-08-16 11:21:24 · 352 阅读 · 0 评论 -
删除链表中的元素
题目要求:删除链表中等于给定值val的所有节点。 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 思路:刚开始想着用一个指针实现,可是老师卡在这个1->1->NULL这个例子这里,输出的结果是1->NULL.后面,受启发,我为什么不用两个指针来实现,一个指针p用来存放当前的地址,一个指针q用来存放下一个地址。原创 2017-08-02 10:26:27 · 438 阅读 · 0 评论 -
加一
描述:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的最前面。 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4]. 给定 [9,9,9] 表示 999, 返回 [1,0,0,0].新知识点: vector<int> c; c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭原创 2017-09-01 14:29:56 · 238 阅读 · 0 评论