
lintcode
文章平均质量分 53
faithenXX
对互联网感兴趣
展开
-
LintCode:回文链表
回文链表 描述 笔记 数据 评测设计一种方式检查一个链表是否为回文链表。您在真实的面试中是否遇到过这个题? Yes样例1->2->1 就是一个回文链表。挑战 O(n)的时间和O(1)的额外空间。class Solution {public: /**原创 2016-11-23 22:20:40 · 1227 阅读 · 1 评论 -
LintCode:翻转链表
翻转链表 描述 笔记 数据 评测翻转一个链表您在真实的面试中是否遇到过这个题? Yes样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战 在原地一次翻转完成class Solution {public: /*原创 2016-11-23 22:08:03 · 330 阅读 · 0 评论 -
LintCode: 分割回文串 II
分割回文串 II 描述 笔记 数据 评测给定一个字符串s,将s分割成一些子串,使每个子串都是回文。返回s符合要求的的最少分割次数。您在真实的面试中是否遇到过这个题? Yes样例比如,给出字符串s = "aab",返回 1, 因为进行一次分割可以将字符串s分割成["aa","b"]这样两个原创 2016-11-22 20:28:21 · 701 阅读 · 0 评论 -
LintCode:分割回文串
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的回文串分割方案。您在真实的面试中是否遇到过这个题? Yes样例给出 s = "aab",返回[ ["aa", "b"], ["a", "a", "b"]]class Solution {public: /** * @para原创 2016-11-22 17:37:46 · 978 阅读 · 0 评论 -
LintCode:丑数 II
设计一个算法,找出只含素因子2,3,5 的第 n 大的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 注意事项我们可以认为1也是一个丑数您在真实的面试中是否遇到过这个题? Yes样例如果n = 9, 返回 10class Solution {public:原创 2016-11-17 19:33:05 · 681 阅读 · 0 评论 -
LintCode:超级丑数
写一个程序来找第 n 个超级丑数。超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] 是前 12 个超级丑数。 注意事项1 永远都是超级丑数不管给的质数集合是什么。给你的质数集合已原创 2016-11-17 19:03:42 · 1151 阅读 · 0 评论 -
LintCode:丑数
写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。 注意事项可以认为 1 是一个特殊的丑数。您在真实的面试中是否遇到过这个题? Yes样例给出 num = 8,返回 true。给出 num =原创 2016-11-16 21:30:43 · 484 阅读 · 0 评论 -
LintCode:硬币排成线(1 2)
硬币排成线1 描述 笔记 数据 评测有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes样例n = 1, 返回 true.n = 2,原创 2016-11-13 21:07:36 · 472 阅读 · 0 评论 -
LintCode:摆动排序 II
摆动排序 II 描述 笔记 数据 评测给你一个数组nums,将它重排列如下形式nums[0] nums[2] < nums[3].... 注意事项你可以认为每个输入都有合法解样例给出 nums = [1, 5, 1, 1, 6, 4],一种方案为[1, 4, 1, 5, 1, 6原创 2016-11-11 16:08:15 · 518 阅读 · 0 评论 -
LintCode:两数组的交 II
两数组的交 II 描述 笔记 数据 评测计算两个数组的交 注意事项每个元素出现次数得和在数组里一样答案可以以任意顺序给出您在真实的面试中是否遇到过这个题? Yes样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2,原创 2016-11-05 15:15:38 · 357 阅读 · 0 评论 -
LintCode:backpack2
背包问题 II 描述 笔记 数据 评测给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大? 注意事项A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。您在真实的面试中是否遇到过这个题? Y原创 2016-11-05 10:44:53 · 327 阅读 · 0 评论 -
LintCode:01背包问题
背包问题 描述 笔记 数据 评测在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 注意事项你不可以将物品进行切割。您在真实的面试中是否遇到过这个题? Yes样例如果有4个物品[2, 3, 5, 7]如果背包的大小为11,可以原创 2016-11-03 22:31:10 · 922 阅读 · 0 评论 -
LintCode:backpack VI
Backpack VI 描述 笔记 数据 评测Given an integer array nums with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.原创 2016-11-02 22:48:16 · 427 阅读 · 0 评论 -
LintCode:两数组的交
两数组的交 描述 笔记 数据 评测返回两个数组的交您在真实的面试中是否遇到过这个题? Yes样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].class Solution {public: /** *原创 2016-11-02 19:31:09 · 522 阅读 · 0 评论 -
LintCode:合并排序数组
合并排序数组 描述 笔记 数据 评测合并两个排序的整数数组A和B变成一个新的数组。您在真实的面试中是否遇到过这个题? Yes样例给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]我的做法:class Solution {public:原创 2016-09-25 23:08:02 · 410 阅读 · 0 评论 -
LintCode:数组剔除元素之后的乘积
给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法样例给出A=[1, 2, 3],返回 B为[6, 3, 2]class Solution {public: /** * @param A: Given an integers array原创 2016-09-24 19:44:10 · 287 阅读 · 0 评论 -
LintCode:Sqrt(x) x的平方根
实现 int sqrt(int x) 函数,计算并返回 x 的平方根样例sqrt(3) = 1sqrt(4) = 2sqrt(5) = 2sqrt(10) = 3挑战 O(log(x))我的代码:注意平方值可能会超过int,故使用long longclass Solution {public: /**原创 2016-09-20 20:26:42 · 863 阅读 · 0 评论 -
LintCode: 摊平嵌套的列表
给你一个嵌套的列表,实现一个迭代器将其摊平。一个列表的每个元素可能是整数或者一个列表。您在真实的面试中是否遇到过这个题? Yes样例给出列表 [[1,1],2,[1,1]],经过迭代器之后返回 [1,1,2,1,1]。给出列表 [1,[4,[6]]],经过迭代器之后返回 [1,4,6]。标签 递归 栈 数据结构设计原创 2016-11-26 19:38:55 · 720 阅读 · 0 评论 -
Lintcode:数飞机
给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 注意事项如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。您在真实的面试中是否遇到过这个题? Yes样例对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], 返回3。原创 2016-11-26 20:34:43 · 1234 阅读 · 0 评论 -
LintCode:生成括号
生成括号 描述 笔记 数据 评测给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。您在真实的面试中是否遇到过这个题? Yes样例给定 n = 3, 可生成的组合如下:"((()))", "(()())", "(())()", "()(())", "()()()原创 2016-12-01 20:58:50 · 458 阅读 · 0 评论 -
LintCode:摇摆排序
摆动排序 描述 笔记 数据 评测给你一个没有排序的数组,请将原数组就地重新排列满足如下性质nums[0] = nums[2] <= nums[3].... 注意事项请就地排序数组,也就是不需要额外数组您在真实的面试中是否遇到过这个题? Yes样例给出数组为 nu原创 2016-11-09 22:33:49 · 395 阅读 · 0 评论 -
LintCode:房屋染色 i
房屋染色 描述 笔记 数据 评测这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。 注意原创 2016-11-06 22:21:37 · 607 阅读 · 0 评论 -
Lintcode:拓扑排序(深度优先搜索,广度优先搜索)
//广度优先搜索(BFS)vector topSort(vector graph) { vector ret; if(graph.empty()) return ret; map in; //in为入度 queue s; //保存入度为零的节点原创 2017-02-19 15:15:35 · 3561 阅读 · 0 评论 -
Lintcode: 复制带随机指针的链表
复制带随机指针的链表 描述 笔记 数据 评测给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 您在真实的面试中是否遇到过这个题? Yes样例挑战 可否使用O(1)的空间标签 哈希表 链表 优步原创 2017-02-10 18:03:05 · 309 阅读 · 0 评论 -
LintCode: 解码方法
有一个消息包含A-Z通过以下规则编码'A' -> 1'B' -> 2...'Z' -> 26现在给你一个加密过后的消息,问有几种解码的方式您在真实的面试中是否遇到过这个题? Yes样例给你的消息为12,有两种方式解码 AB(12) 或者 L(12). 所以返回 2class Solution {public:原创 2017-01-04 00:06:31 · 2204 阅读 · 0 评论 -
Lintcode: 形状工厂
形状工厂 描述 笔记 数据 评测工厂模式是一种常见的设计模式。实现一个形状工厂 ShapeFactory 来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。您在真实的面试中是否遇到过这个题? Yes样例ShapeFactory sf = new ShapeFactory();S原创 2017-01-03 20:37:17 · 276 阅读 · 0 评论 -
LintCode:玩具工厂
工厂模式是一种常见的设计模式。请实现一个玩具工厂 ToyFactory 用来产生不同的玩具类。可以假设只有猫和狗两种玩具。您在真实的面试中是否遇到过这个题? Yes样例ToyFactory tf = ToyFactory();Toy toy = tf.getToy('Dog');toy.talk(); >> Wowtoy = tf.ge原创 2016-12-13 23:02:47 · 919 阅读 · 0 评论 -
LintCode:逆序对
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。概括:如果a[i] > a[j] 且 i 您在真实的面试中是否遇到过这个题? Yes样例序列 [2, 4, 1, 3, 5] 中,有 3 个逆序对 (2, 1), (4, 1), (4, 3),则返回 3 。原创 2016-12-08 23:23:58 · 765 阅读 · 0 评论 -
LintCode:单例
单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。您在真实的面试中是否遇到过这个题?原创 2016-12-07 21:31:29 · 808 阅读 · 0 评论 -
LintCode:移动零
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序 注意事项1.必须在原数组上操作2.最小化操作数您在真实的面试中是否遇到过这个题? Yes样例给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums =[1, 3, 12, 0, 0].思路:将非0的数原创 2016-12-07 20:49:22 · 1436 阅读 · 1 评论 -
LintCode:打劫房屋 III
在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多少钱,当然在不触动报警装置的情况原创 2016-12-07 20:25:37 · 402 阅读 · 0 评论 -
LintCode:打劫房屋 II
在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下原创 2016-12-06 22:44:36 · 635 阅读 · 0 评论 -
LintCode:打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。您在真实的面试中是否遇到过这个题? Yes原创 2016-12-06 21:45:04 · 306 阅读 · 0 评论 -
LintCode:图是否是树
给出 n 个节点,标号分别从 0 到 n - 1 并且给出一个 无向 边的列表 (给出每条边的两个顶点), 写一个函数去判断这张`无向`图是否是一棵树 注意事项你可以假设我们不会给出重复的边在边的列表当中. 无向边 [0, 1]和 [1, 0] 是同一条边, 因此他们不会同时出现在我们给你的边的列表当中。您在真实的面试中是否遇到过这个题?原创 2016-12-06 21:20:11 · 716 阅读 · 0 评论 -
LintCode:交换链表当中两个节点
给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。 注意事项你需要交换两个节点而不是改变节点的权值您在真实的面试中是否遇到过这个题? Yes样例给出链表 1->2->3->4->null ,以及 v1 = 2 , v2 = 4原创 2016-12-06 12:33:30 · 1025 阅读 · 0 评论 -
LlintCode:完美平方
完美平方 描述 笔记 数据 评测给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。您在真实的面试中是否遇到过这个题? Yes样例给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4。给出 n =原创 2016-12-01 21:36:36 · 1037 阅读 · 0 评论 -
LintCode:颜色分类
题目:给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们可以使用整数 0,1 和 2 分别代表红,白,蓝。挑战:一个相当直接的解决方案是使用计数排序扫描2遍的算法。首先,迭代数组计算 0,1,2 出现的次数,然后依次用 0,1,2 出现的次数去覆盖数组。你否能想出一个仅使用常数级额外空间复杂度原创 2016-09-19 18:16:13 · 611 阅读 · 0 评论