
Lintcode medium
闪闪亮亮
人生就是这样,耐得住寂寞,才能守得住繁华。每一个优秀的人,都有一段沉默的时光。那一段时光,付出了很多努力,忍受孤独和寂寞,不抱怨不诉苦,日后说起时,连自己都能被感动。
展开
-
用栈实现队列
问题描述:正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2方法一:入原创 2017-08-09 10:30:18 · 240 阅读 · 0 评论 -
落单的数(落单的数 & 落单的数 II & 落单的数 III)
落单的数给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2,1,3,4,3],返回 4挑战 一次遍历,常数级的额外空间复杂度思路1:利用异或的性质(自反性)自反性:a ^ b ^ a = b.异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A^B^ B=A,即对给定的数A,用同样的运算因原创 2017-09-01 10:36:30 · 2939 阅读 · 1 评论 -
带环链表 & 找出环中入口节点
给定一个链表,判断它是否有环。样例给出 -21->10->4->5, tail connects to node index 1,返回 true不要使用额外的空间!!思路:如果一个链表有环, 那么它肯定只有一个环.(一个相交结点)算法:设两个指针p, q, 初始化指向头.p以步长2的速度向前跑, q的步长是1.这样, 如果链表不存在环, p和q肯定不原创 2017-08-26 11:07:32 · 456 阅读 · 0 评论 -
两个链表的交叉
请写一个程序,找到两个单链表最开始的交叉节点。 注意事项如果两个链表没有交叉,返回null。在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。样例下列两个链表:A: a1 → a2 ↘ c1 → c2 → c3原创 2017-08-26 10:22:59 · 331 阅读 · 0 评论 -
Expression Expand
问题描述:Given an expression s includes numbers, letters and brackets. Number represents the number of repetitions inside the brackets(can be a string or another expression).Please expand expression to原创 2017-08-05 20:37:39 · 342 阅读 · 0 评论 -
链表求和
问题描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null链表的数据结构如下:/** * Definition for sin原创 2017-08-11 18:29:47 · 277 阅读 · 0 评论 -
逆波兰表达式求值
题目描述:求逆波兰表达式的值。在逆波兰表达法中,其有效的运算符号包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。样例:["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6思路:原创 2017-08-04 11:50:42 · 329 阅读 · 0 评论 -
132 Pattern
问题描述:Given a sequence of n integers a1, a2, ..., an, a 132 pattern is a subsequence ai, aj, ak such that i j k and ai ak aj. Design an algorithm that takes a list of n numbers as input and checks原创 2017-08-04 11:08:48 · 351 阅读 · 0 评论 -
简化路径
给定一个文档(Unix-style)的完全路径,请进行路径简化。样例"/home/", => "/home""/a/./b/../../c/", => "/c"挑战你是否考虑了 路径 = "/../" 的情况?在这种情况下,你需返回"/"。此外,路径中也可能包含双斜杠'/',如 "/home//foo/"。在这种情况下,可忽略原创 2017-08-10 11:22:01 · 1554 阅读 · 0 评论 -
带最小值操作的栈
问题描述:实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。如果堆栈中没有数字则不能进行min方法的调用。思路方法:1、定义一个栈这里我们称为最小栈,原来的栈我们称为数据栈。2、最小栈和数据栈元素个数一定相同。最小栈的栈顶元素为数据栈的所有原创 2017-08-09 11:29:09 · 312 阅读 · 0 评论 -
最长无重复字符的子串
最长无重复字符的子串给定一个字符串,请找出其中无重复字符的最长子字符串。 样例 例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。 对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。 要求时间复杂度为O(n)思路:如果找到所有的子串的话,在依次进行对比的话,时间复杂度不符合要求。从题目中可以看出,要求时间复杂度为O(n),那么遍历一次,同原创 2017-09-02 21:16:10 · 504 阅读 · 0 评论