LintCode
文章平均质量分 79
iyangdi
这个作者很懒,什么都没留下…
展开
-
LintCode:M-丢失的第一个正整数
LintCode链接给出一个无序的正数数组,找出其中没有出现的最小正整数。您在真实的面试中是否遇到过这个题? Yes样例如果给出 [1,2,0], return 3如果给出 [3,4,-1,1], return 2挑战 只允许时间复杂度O(n)的算法,并且只能使用常数级别的空间。pu原创 2017-08-31 17:26:22 · 292 阅读 · 0 评论 -
LintCode:M-二叉树的锯齿形遍历
LintCode链接给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7返回其锯齿形的层次遍历为:原创 2017-08-30 11:37:18 · 237 阅读 · 0 评论 -
LintCode:M-和大于S的最小子数组
LintCode链接给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。您在真实的面试中是否遇到过这个题? Yes样例给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组。原创 2017-08-30 09:15:49 · 477 阅读 · 0 评论 -
LintCode:M-最大正方形
LintCode链接在一个二维01矩阵中找到全为1的最大正方形您在真实的面试中是否遇到过这个题? Yes样例1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 4分析(1)方法一:一般性方法,可以扩展到最大矩形计算1、以每一行为矩形底,计算每一列的含原创 2017-08-30 11:05:11 · 320 阅读 · 0 评论 -
LintCode:M-带重复元素的排列
LintCode链接给出一个具有重复数字的列表,找出列表所有不同的排列。您在真实的面试中是否遇到过这个题? Yes样例给出列表 [1,2,2],不同的排列有:[ [1,2,2], [2,1,2], [2,2,1]]import java.util.*;class Solution {原创 2017-08-30 08:22:59 · 236 阅读 · 0 评论 -
LintCode:M-最近祖先
LinCode链接给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 注意事项假设给出的两个节点都在树中存在您在真实的面试中是否遇到过这个题? Yes样例对于下面这棵二叉树 4 / \3 7 / \ 5原创 2017-08-29 09:24:31 · 290 阅读 · 0 评论 -
LintCode:M-克隆图
lintCode链接克隆一张无向图,图中的每个节点包含一个 label 和一个列表 neighbors。数据中如何表示一个无向图?http://www.lintcode.com/help/graph/你的程序需要返回一个经过深度拷贝的新图。这个新图和原图具有同样的结构,并且对新图的任何改动不会对原图造成任何影响。您在真实的面试中是否遇到过这个题?原创 2017-08-28 22:03:19 · 335 阅读 · 0 评论 -
LintCode:M-最小子串覆盖
给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。 注意事项如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回起始位置最小的子串。您在真实的面试中是否遇到过这个题? Yes说明在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?原创 2017-08-28 20:41:31 · 869 阅读 · 0 评论 -
LintCode:M-乘积最大子序列
LintCode:链接找出一个序列中乘积最大的连续子序列(至少包含一个数)。您在真实的面试中是否遇到过这个题? Yes样例比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。分析当全部为正数的时候,乘积肯定为最大,但是由于有负数出现,只有偶数情况的负数才能转正所以前面乘积原创 2017-08-28 13:52:37 · 249 阅读 · 0 评论 -
LintCode:M-逆波兰表达式求值
LintCode链接求逆波兰表达式的值。在逆波兰表达法中,其有效的运算符号包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。您在真实的面试中是否遇到过这个题? Yes样例["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13",原创 2017-08-28 12:27:25 · 211 阅读 · 0 评论 -
LintCode:M-复制带随机指针的链表
LintCode:Link给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 您在真实的面试中是否遇到过这个题? Yes样例挑战 可否使用O(1)的空间/** * Definition for singly-linked li原创 2017-08-28 12:19:49 · 245 阅读 · 0 评论 -
LintCode:M-搜索旋转排序数组
LintCode链接假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4, 5, 1, 2, 3原创 2017-08-28 11:54:49 · 166 阅读 · 0 评论 -
LintCode:M-x的n次幂
LintCode链接实现 pow(x,n) 注意事项不用担心精度,当答案和标准输出差绝对值小于1e-3时都算正确您在真实的面试中是否遇到过这个题? Yes样例Pow(2.1, 3) = 9.261Pow(0, 1) = 0Pow(1, 0) = 1public class Sol原创 2017-08-28 10:38:37 · 333 阅读 · 0 评论 -
LintCode:M-抢劫房屋|||
LintCode链接在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多原创 2017-08-30 13:06:15 · 374 阅读 · 0 评论 -
LintCode:M-K个最近的点
LintCode链接给定一些 points 和一个 origin,从 points 中找到 k 个离 origin 最近的点。按照距离由小到大返回。如果两个点有相同距离,则按照x值来排序;若x值也相同,就再按照y值排序。您在真实的面试中是否遇到过这个题? Yes样例给出 points = [[4,6],[4,7],[4,4],[2原创 2017-08-30 14:01:50 · 1005 阅读 · 0 评论 -
LintCode:M-Expression Expand
LintCode链接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 exp原创 2017-08-30 15:21:02 · 272 阅读 · 0 评论 -
LintCode:M-不同的二叉查找树个数
LintCode链接给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3原创 2017-08-31 16:44:17 · 382 阅读 · 0 评论 -
LintCode:M-两个整数相除
LintCode链接将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。您在真实的面试中是否遇到过这个题? Yes样例给定被除数 = 100 ,除数 = 9,返回 11。标签 二分法public class Solution { /*原创 2017-08-31 16:25:59 · 308 阅读 · 0 评论 -
LintCode:M-落单的数II
LintCode链接给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4public class Solution { /** * @param A : An int原创 2017-08-31 15:33:53 · 253 阅读 · 0 评论 -
LintCode:M-最大数
LintCode链接给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项最后的结果可能很大,所以我们返回一个字符串来代替这个整数。您在真实的面试中是否遇到过这个题? Yes样例给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。publ原创 2017-08-31 15:11:35 · 527 阅读 · 0 评论 -
LintCode:M-接雨水
LintCode链接Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.您在真实的面试中是否遇到过这个题?原创 2017-08-31 10:27:04 · 581 阅读 · 0 评论 -
LintCode:M-装最多水的容器
LintCode链接给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。 注意事项容器不可倾斜。您在真实的面试中是否遇到过这个题?原创 2017-08-31 09:42:21 · 251 阅读 · 0 评论 -
LintCode:M-带环链表
LintCode链表给定一个链表,判断它是否有环。您在真实的面试中是否遇到过这个题? Yes样例给出 -21->10->4->5, tail connects to node index 1,返回 true/** * Definition for ListNode. * public class L原创 2017-08-31 09:37:05 · 220 阅读 · 0 评论 -
LintCode:M-两个链表的交叉
LintCode链接请写一个程序,找到两个单链表最开始的交叉节点。 注意事项如果两个链表没有交叉,返回null。在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。您在真实的面试中是否遇到过这个题? Yes样例下列两个链表:A: a1 → a2原创 2017-08-31 09:36:54 · 255 阅读 · 0 评论 -
LintCode:M-单词切分
LintCode链接给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。您在真实的面试中是否遇到过这个题? Yes样例给出s = "lintcode"dict = ["lint","code"]返回 true 因为"lintcode"可以被空格切分成"lint code"原创 2017-08-31 09:36:42 · 216 阅读 · 0 评论 -
LintCode:M-最长无重复字符的子串
LintCode链接给定一个字符串,请找出其中无重复字符的最长子字符串。您在真实的面试中是否遇到过这个题? Yes样例例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。public class Solutio原创 2017-08-30 19:32:35 · 269 阅读 · 0 评论 -
LintCode:M-房屋染色
LintCode链接这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。 注意事项所有费用都是正整数您原创 2017-08-30 18:38:57 · 443 阅读 · 0 评论 -
LintCode:M-大数相乘
LintCode链接Given two non-negative integers num1 and num2represented as strings, return the product of num1 and num2您在真实的面试中是否遇到过这个题? Yes样例The length of both num1 and原创 2017-08-30 17:04:33 · 223 阅读 · 0 评论 -
数据结构:线段树
(1)构建LintCode:Link线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值:根节点的 start 和 end 由 build 方法所给出。对于节点 A 的左儿子,有 start=A.left, end=(A.left + A.right) / 2。对于原创 2017-08-23 22:54:59 · 203 阅读 · 0 评论 -
LintCode:M-硬币排成线 II
题目LintCode:Link九章算法:Google Ref - 翻转游戏思路参考:Link有 n 个不同价值的硬币排成一条线。两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes原创 2017-08-23 20:51:22 · 347 阅读 · 0 评论 -
LintCode:M-打劫房屋
http://www.lintcode.com/zh-cn/problem/house-robber/假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最原创 2017-08-20 17:57:38 · 226 阅读 · 0 评论 -
LintCode:H-求K数和
http://www.lintcode.com/zh-cn/problem/k-sum/给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,[1,4] and原创 2017-08-20 17:46:52 · 406 阅读 · 0 评论 -
Google算法题:M-罗马数字与整数互转
http://www.lintcode.com/zh-cn/problem/roman-to-integer/给定一个罗马数字,将其转换成整数。返回的结果要求在1到3999的范围内。您在真实的面试中是否遇到过这个题? Yes说明什么是 罗马数字?https://en.wikipedia.org/wiki/R原创 2017-08-20 11:32:07 · 424 阅读 · 0 评论 -
Google算法题:三数求和
http://www.lintcode.com/zh-cn/problem/3sum/给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 注意事项在三元组(a, b, c),要求a 结果不能包含重复的三元组。您在真实的面试中是否遇到过这个题? Yes原创 2017-08-20 11:01:47 · 1119 阅读 · 0 评论 -
MicroSoft/LintCode:M-打劫房屋 II
题目题目来源:Link在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果原创 2017-08-13 11:59:47 · 250 阅读 · 0 评论 -
Google/LintCode:M-超级丑数
题目题目来源:Link写一个程序来找第 n 个超级丑数。超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] 是前 12 个超级丑数。1 永远都是原创 2017-08-10 10:35:54 · 313 阅读 · 0 评论 -
Google/LintCode:M-Insert Delete GetRandom O(1)
题目题目来源:LinkDesign a data structure that supports all following operations in average O(1)time.insert(val): Inserts an item val to the set if not already present.remove(val): Re原创 2017-08-08 20:06:07 · 268 阅读 · 0 评论 -
Google/LintCode:E-Big Integer Addition
题目题目来源:LinkGiven two non-negative integers num1 and num2represented as string, return the sum of num1 and num2. 注意事项The length of both num1 and num2 is Both num1 and nu原创 2017-08-08 19:58:43 · 283 阅读 · 0 评论 -
Google/LintCode:M-带最小值操作的栈
题目题目来源:Link实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。 注意事项如果堆栈中没有数字则不能进行min方法的调用您在真实的面试中是否遇到过这个题? Yes样例原创 2017-08-11 15:43:34 · 308 阅读 · 0 评论 -
Google/LintCode:M-搜索二维矩阵 II
题目题目来源:Link写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。您在真实的面试中是否遇到过这个题? Yes样例考虑下列矩阵:[原创 2017-08-11 15:20:55 · 230 阅读 · 0 评论