
LintCode
文章平均质量分 81
lhanchao
有问题请留言,私信不回,请见谅
展开
-
LintCode笔记(9)——合并排序数组 与vector的insert和erase总结笔记
合并两个排序的整数数组A和B变成一个新的数组。 您在真实的面试中是否遇到过这个题? Yes 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 挑战 你能否优化你的算法,如果其中一个数组很大而另一个数组很小? 这道题题目的原理很简单,即便是挑战的内容也很简单,就是遍历两个数组,原创 2016-08-03 10:49:51 · 867 阅读 · 0 评论 -
LintCode笔记(11)—— 带重复元素的子集
给定一个可能具有重复数字的列表,返回其所有可能的子集 注意事项 子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集 您在真实的面试中是否遇到过这个题? Yes 样例 如果 S = [1,2,2],一个可能的答案为: [ [2], [1], [1,2,2], [2,2], [1,原创 2017-01-20 10:00:50 · 1627 阅读 · 0 评论 -
LintCode笔记(6)——尾部的零
设计一个算法,计算出n阶乘中尾部零的个数 您在真实的面试中是否遇到过这个题? Yes 样例 11! = 39916800,因此应该返回 2 挑战 O(logN)的时间复杂度 这个问题其实是一个数学问题,编程很容易解决。 我们可以这样想比如N!= 1 * 2 * 3 * 4 * 5 * 6 * 7 * … * N-1 *原创 2016-07-27 09:46:04 · 691 阅读 · 0 评论 -
LintCode笔记(1)——硬币排成线
有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。 请判定 第一个玩家 是输还是赢? 样例 n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回 true. n = 5, 返回 true. 具体的解释在注释里,这里注意求得原创 2016-07-24 20:38:26 · 480 阅读 · 0 评论 -
LintCode笔记(2)——罗马数字转整数
问题:给定一个罗马数字,将其转换成整数。返回的结果要求在1到3999的范围内。 样例 IV -> 4 XII -> 12 XXI -> 21 XCIX -> 99 首先需要说明罗马数字的原理,如下所示: 罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记原创 2016-07-25 10:26:57 · 726 阅读 · 0 评论 -
LintCode笔记(3)——二叉树的先序遍历
给出一棵二叉树,返回其节点值的前序遍历。 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]. 挑战:不用递归做。 首先回顾一下二叉树的先序遍历,中序遍历和后序遍历。 二叉树的先序遍历:先遍历根,再遍历左子树和右原创 2016-07-25 11:35:07 · 848 阅读 · 0 评论 -
LintCode笔记(4)——二叉树的层次遍历II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 按照从下往上的层次遍历为: [ [15,7],原创 2016-07-25 21:10:04 · 521 阅读 · 0 评论 -
LintCode笔记(5)——整数转罗马数字
给定一个整数,将其转换成罗马数字。 返回的结果要求在1-3999的范围内。 您在真实的面试中是否遇到过这个题? Yes 说明 什么是 罗马数字? https://en.wikipedia.org/wiki/Roman_numeralshttps://zh.wikipedia.org/wiki/%E7%BD%97%E9%A9%AC%E6%95%B0%原创 2016-07-26 08:54:00 · 506 阅读 · 0 评论 -
LintCode笔记(7)——统计数字
计算数字k在0到n中的出现的次数,k可能是0~9的一个值 您在真实的面试中是否遇到过这个题? Yes 样例 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12) 费了很大的力气找比较简单的方法,最后还是没有实现,只能用暴力破解。。思路就原创 2016-07-27 16:05:48 · 2084 阅读 · 1 评论 -
LintCode笔记(8)——丑数II
Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ugly number. The first 10 ugly numbers are 1, 2, 3, 4, 5, 6, 8, 9, 10, 12... Notice Note that原创 2016-08-01 08:28:16 · 5368 阅读 · 2 评论 -
LintCode笔记(10)——二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 您在真实的面试中是否遇到过这个题? Yes 样例 在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。 挑战 如果数组中的整数个数超过了原创 2016-09-27 19:39:23 · 763 阅读 · 0 评论 -
LintCode笔记(12)——第k大元素
在数组中找到第k大的元素 注意事项 你可以交换数组中的元素的位置 您在真实的面试中是否遇到过这个题? Yes 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推 挑战 要求时间复杂度为O(n),空原创 2016-08-01 17:19:00 · 1779 阅读 · 0 评论