![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 65
wangyuquan
这个作者很懒,什么都没留下…
展开
-
LintCode-落单的数 III
给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,3,4,4,5,3],返回 1和5挑战O(n)时间复杂度,O(1)的额外空间复杂度标签 Expand 相关题目 Expand 分析:这种抖机灵的题要是面试官面原创 2015-06-25 17:00:13 · 1957 阅读 · 0 评论 -
LintCode-下一个排列
给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。如果没有下一个排列,则输出字典序最小的序列。样例左边是原始排列,右边是对应的下一个排列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1挑战不允许使用额外的空间。分析:从后往前找,找到第一对(i,j),使得nums[i]原创 2015-05-23 15:39:23 · 3232 阅读 · 1 评论 -
LintCode-打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例给定 [3, 8, 4], 返回 8.挑战原创 2015-05-23 16:51:09 · 2711 阅读 · 0 评论 -
LintCode-二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7按照从下往上的层次遍历为:[ [15,7], [9,20]原创 2015-06-25 19:18:18 · 2206 阅读 · 0 评论 -
LintCode-搜索区间
给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]您在真实的面试中是否遇到过这个题? Yes样例给出[5, 7, 7, 8, 8, 10]和目标值target=8,返回[3, 4]挑战时间复杂度 O(log n)标签 Expand原创 2015-06-25 23:14:16 · 1403 阅读 · 0 评论 -
LintCode-硬币排成线 II
有 n 个不同价值的硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?样例给定数组 A = [1,2,2], 返回 true.给定数组 A = [1,2,4], 返回 false.分析:肯定还是动态规划问题,而已可以知道dp[i]肯定和d原创 2015-05-23 12:29:22 · 3191 阅读 · 3 评论 -
LintCode-最大子数组差
给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。返回这个最大的差值。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1, 2, -3, 1],返回 6注意子数组最少包含一个数挑战时间复杂度为O(n),空间复杂度为O(n)标签原创 2015-06-26 19:42:33 · 3647 阅读 · 0 评论 -
LintCode-编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yes样例给出 work1="mart" 和 work2="karma"返回 3标签 Expand 相关题目 Expand原创 2015-06-27 16:48:09 · 2225 阅读 · 1 评论 -
LintCode-排序矩阵中的从小到大第k个数
在一个排序矩阵中找从小到大的第 k 个整数。排序矩阵的定义为:每一行递增,每一列也递增。您在真实的面试中是否遇到过这个题? Yes样例给出 k = 4 和一个排序矩阵:[ [1 ,5 ,7], [3 ,7 ,8], [4 ,8 ,9],]返回 5。挑战使用O(k log n)的方法,n为矩阵的宽度和高度中的最大值。原创 2015-06-27 15:56:00 · 4387 阅读 · 0 评论 -
LintCode-硬币排成线 III
There are n coins in a line. Two players take turns to take a coin from one of the ends of the line until there are no more coins left. The player with the larger amount of money wins.Could you pl原创 2015-05-22 23:47:34 · 2972 阅读 · 1 评论 -
LintCode-最长公共前缀
给k个字符串,求出他们的最长公共前缀(LCP)您在真实的面试中是否遇到过这个题? Yes样例在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"标签 Expand 分析:就是直接两两计算前缀。。。代码:cl原创 2015-06-25 18:55:33 · 7394 阅读 · 1 评论 -
LintCode-简化路径
给定一个文档(Unix-style)的完全路径,请进行路径简化。您在真实的面试中是否遇到过这个题? Yes样例"/home/", => "/home""/a/./b/../../c/", => "/c"挑战你是否考虑了 路径 = "/../" 的情况?在这种情况下,你需返回"/"。此外,路径中也可能包含双斜杠'原创 2015-06-24 22:16:00 · 3355 阅读 · 0 评论 -
LintCode-k数和 II
给定n个不同的正整数,整数k(1k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,你需要找出所有满足要求的方案。您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,返回 [[1,4],[2,3]]标签 Expand 相关题目 Expand 分析:就是简单的递归练原创 2015-06-24 23:25:50 · 2409 阅读 · 0 评论 -
LintCode-最长公共子串
给出两个字符串,找到最长公共子串,并返回其长度。您在真实的面试中是否遇到过这个题? Yes样例给出A=“ABCD”,B=“CBCE”,返回 2注意子串的字符应该连续的出现在原字符串中,这与子序列有所不同。标签 Expand 相关题目 Expand 分析:注意是子串,不是子序列,当然做法肯定也是动态原创 2015-06-25 18:49:35 · 2268 阅读 · 1 评论 -
LintCode-寻找峰值
你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0] A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。您在真实的面试中是否遇到过这个题? Yes样例给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1, 即数值 2 所在位置原创 2015-06-25 19:03:51 · 2912 阅读 · 4 评论 -
LintCode-搜索旋转排序数组
假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4, 5, 1, 2, 3]和target=1,返回 2给出[4, 5原创 2015-06-25 21:03:54 · 2634 阅读 · 0 评论 -
LintCode-搜索旋转排序数组 II
跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。您在真实的面试中是否遇到过这个题? Yes样例给出[3,4,4,5,7,0,1,2]和target=4,返回 true标签 Expand 分析:有重复数据还是很蛋疼的,重点在于消原创 2015-06-25 22:03:11 · 1898 阅读 · 1 评论 -
LintCode-最近公共祖先
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。您在真实的面试中是否遇到过这个题? Yes样例对于下面这棵二叉树 4 / \3 7 / \ 5 6LCA(3, 5) = 4LCA(5, 6) = 7LCA(6, 7) = 7标签 Expand原创 2015-06-25 12:16:20 · 2731 阅读 · 0 评论 -
LintCode-落单的数 II
给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4挑战一次遍历,常数级的额外空间复杂度标签 Expand 贪心分析:考位操作的一道题,如果每个数字都出现三次的原创 2015-06-25 15:51:06 · 2662 阅读 · 0 评论 -
LintCode-寻找缺失的数
给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。您在真实的面试中是否遇到过这个题? Yes样例N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。注意可以改变序列中数的位置。挑战在数组上原地完成,使用O(1)的额外空间和O(N)的时间。分析:感觉原创 2015-06-24 19:20:11 · 2834 阅读 · 0 评论 -
LintCode-硬币排成线
有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes样例n = 1, 返回 true.n = 2, 返回 true.n = 3, 返回 false.n = 4, 返回 true.n = 5, 返回原创 2015-08-08 19:47:10 · 2618 阅读 · 6 评论 -
LintCode-排序列表转换为二分查找树
给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树您在真实的面试中是否遇到过这个题? Yes样例标签 Expand 相关题目 Expand 分析:就是一个简单的递归,只是需要有些链表的操作而已代码:/** * Definition of ListNode * class ListNode { *原创 2015-08-08 16:15:31 · 1966 阅读 · 0 评论 -
LintCode-带环链表 II
给定一个链表,如果链表中存在环,则返回到链表中环的起始节点的值,如果没有环,返回null。您在真实的面试中是否遇到过这个题? Yes样例给出 -21->10->4->5, tail connects to node index 1,返回10挑战不使用额外的空间标签 Expand 相关题目 Expand 分析:原创 2015-08-08 16:57:26 · 2470 阅读 · 1 评论 -
LintCode-两个整数相除
将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。您在真实的面试中是否遇到过这个题? Yes样例给定被除数 = 100 ,除数 = 9,返回 11。标签 Expand 相关题目 Expand 分析:既然不能乘法和除法,那肯定就只能位操作了,然后如果用减法的话,太慢了,必须想点二进原创 2015-08-12 21:26:02 · 3194 阅读 · 0 评论 -
LintCode-赋值运算符重载
实现赋值运算符重载函数,确保:新的数据可准确地被复制旧的数据可准确地删除/释放可进行 A = B = C 赋值您在真实的面试中是否遇到过这个题? Yes样例如果进行 A = B 赋值,则 A 中的数据被删除,取而代之的是 B 中的数据。如果进行 A = B = C 赋值,则 A 和 B 都复制了 C 中的数据。挑战充分考虑原创 2015-08-12 21:39:29 · 817 阅读 · 0 评论 -
LintCode-A + B 问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。您在真实的面试中是否遇到过这个题? Yes样例如果 a=1 并且 b=2,返回3注意你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。挑战显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?原创 2015-08-18 17:50:47 · 5494 阅读 · 3 评论 -
LintCode-丑数
设计一个算法,找出只含素因子3,5,7 的第 k 大的数。符合条件的数如:3,5,7,9,15......您在真实的面试中是否遇到过这个题? Yes样例如果k=4, 返回 9挑战要求时间复杂度为O(nlogn)或者O(n)标签 Expand 相关题目 Expand 分析:分别设三个指针,表明乘以3,5,7原创 2015-08-18 17:42:15 · 1996 阅读 · 0 评论 -
LintCode-第k大元素
在数组中找到第k大的元素您在真实的面试中是否遇到过这个题? Yes样例给出数组[9,3,2,4,8],第三大的元素是4给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推注意你可以交换数组中的元素的位置挑战要求时间复杂度为O(n),空间复杂度为O(1)标签 Exp原创 2015-08-18 20:17:22 · 5605 阅读 · 0 评论 -
LintCode-交叉字符串
给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。您在真实的面试中是否遇到过这个题? Yes样例比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 = "aadbbcbcac",返回 true. - 当 s3 = "aadbbbaccc", 返回 false.挑战要求时间复杂度为O(原创 2015-08-19 11:00:47 · 4156 阅读 · 0 评论 -
LintCode-数组划分
给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i]大于等于k。您在真实的面试中是否遇到过这个题? Yes样例给出数组nums=[3,2,2,1]和 k=2,返回 1注意原创 2015-08-19 11:23:36 · 2951 阅读 · 0 评论 -
LintCode-交错正负数
给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。样例给出数组[-1, -2, -3, 4, 5, 6],重新排序之后,变成[-1, 5, -2, 4, -3, 6]或者其他任何满足要求的答案注意不需要保持正整数或者负整数原来的顺序。挑战原地完成,没有额外的空间分析:如果正数多那么第一个数应该是正数,反之也成立原创 2015-05-18 10:48:52 · 2197 阅读 · 1 评论 -
LintCode-加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。您在真实的面试中是否遇到过这个题? Yes样例现在有4个原创 2015-08-13 19:04:45 · 2772 阅读 · 0 评论 -
LintCode-买卖股票的最佳时机
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例 [3,2,3,1,2], 返回 1 标签 Expand 相关题目 Expand 分析:对于每一天来说,它能得到的最大利益原创 2015-08-13 21:05:22 · 4258 阅读 · 0 评论 -
LintCode-k数和
给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案标签 Expand 相关题目 Expand 分析:看到这种题目想肯原创 2015-08-09 15:52:02 · 3353 阅读 · 0 评论 -
LintCode-最大子数组 III
给定一个整数数组和一个整数k,找出k个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。您在真实的面试中是否遇到过这个题? Yes样例给出数组[-1,4,-2,3,-2,3]以及k=2,返回 8注意子数组最少包含一个数挑战要求时间复杂度为O(n)标签 Exp原创 2015-08-09 16:48:00 · 3601 阅读 · 1 评论 -
LintCode-通配符匹配
判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下:'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个串完全匹配才算匹配成功。函数接口如下:bool isMatch(const char *s, const char *p)您在真实的面试中是否遇到过这个题? Yes样例一些例子:isMatch("a原创 2015-08-09 19:05:13 · 2474 阅读 · 0 评论 -
LintCode-分割回文串 II
给定一个字符串s,将s分割成一些子串,使每个子串都是回文。返回s符合要求的的最少分割次数。您在真实的面试中是否遇到过这个题? Yes样例比如,给出字符串s = "aab",返回 1, 因为进行一次分割可以将字符串s分割成["aa","b"]这样两个回文子串标签 Expand 相关题目 Expand 分析:一开始写了个n的原创 2015-08-09 14:34:36 · 5108 阅读 · 0 评论 -
LintCode-Copy Books
Given an array A of integer with size of n( means n books and number of pages of each book) and k people to copy the book. You must distribute the continuous id books to one people to copy. (You can g原创 2015-08-10 20:07:36 · 4222 阅读 · 0 评论 -
LintCode-分糖果
有 N 个小孩站成一列。每个小孩有一个评级。按照以下要求,给小孩分糖果:每个小孩至少得到一颗糖果。评级越高的小孩可以得到更多的糖果。需最少准备多少糖果?您在真实的面试中是否遇到过这个题? Yes样例给定评级 = [1, 2], 返回 3.给定评级 = [1, 1, 1], 返回 3.给定评级 = [1, 2, 2], 返回原创 2015-08-11 20:52:16 · 2548 阅读 · 0 评论 -
LintCode-和大于S的最小子数组
给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。您在真实的面试中是否遇到过这个题? Yes样例给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组。挑战如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n原创 2015-08-11 20:28:02 · 2561 阅读 · 1 评论