lintcode :搜索旋转排序数组
摘要:题目 搜索旋转排序数组 假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。 你可以假设数组中不存在重复的元素。 假设有一个排序的按未知的旋转轴旋转的数组(
阅读全文
lintcode: search for a range 搜索区间
摘要:题目 搜索区间 给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1] 给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1] 给定一个包含 n 个
阅读全文
lintcode:最大子数组差
摘要:题目 最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。 返回这个最大的差值。 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。 返回这个最大的差值。 给定
阅读全文
lintcode:最大子数组II
摘要:题目 最大子数组 II 给定一个整数数组,找出两个不重叠子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 返回最大的和。 给定一个整数数组,找出两个不重叠子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 返回最大的和。 给定一个整数数组,找出两个不重叠子数
阅读全文
lintcode :最大子数组
摘要:题目: 最大子数组 最大子数组 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 注意 子数组最少包含一个数 挑战 要求时间复杂度为O(n) 解题: 通过率37%,一定是暴
阅读全文
lintcode : 平衡二叉树
摘要:题目 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 给出二叉树 A={3,9,20,#,#,15,7}, B={3,#,20,15,7} 二叉树A是高度平衡的二叉树,但是B不是 解题 递归求高度 判断左右孩子高度
阅读全文
lintcode:anagrams 乱序字符串
摘要:题目 乱序字符串 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。 您在真实的面试中是否遇到过这个题? Yes 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序
阅读全文
lintcode :sort letters by case字符大小写排序
摘要:题目 字符大小写排序 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 您在真实的面试中是否遇到过这个题? Yes 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 您在真实的面试中是否遇到
阅读全文
lintcode :implement queue by two stacks 用栈实现队列
摘要:题目 用栈实现队列 正如标题所述,你需要使用两个栈来实现队列的一些操作。 队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。 pop和top方法都应该返回第一个元素的值。 正如标题所述,你需要使用两个栈来实现队列的一些操作。 队列应支持
阅读全文
lintcode 中等题: reverse linked list II 翻转链表II
摘要:题目翻转链表 II翻转链表中第m个节点到第n个节点的部分样例给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null注意m,n满足1 ≤ m ≤ n ≤ 链表长度挑战在原地一次翻转完成解题九章中的程序/** * Definition fo...
阅读全文
lintcode 中等题:minimum window substring 最小子串覆盖
摘要:题目 最小子串覆盖 给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。 样例 给出source = "ADOBECODEBANC",target = "ABC" 满足要求的解 "BANC" 注意 如果在source中没有这样的子串,返回"
阅读全文
lintcode 中等题:partition array 数组划分
摘要:题目数组划分给出一个整数数组nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i]大于等于k。您在真实的面试中是否遇到过这个题?Yes样例给出数组nums=[3,2,2,1]...
阅读全文
lintcode 中等题:interleaving String 交叉字符串
摘要:题目交叉字符串给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。样例比如 s1 ="aabcc"s2 ="dbbca" - 当 s3 ="aadbbcbcac",返回 true. - 当 s3 ="aadbbbaccc", 返回 false.挑战要求时间复杂度为O(n^2)或者...
阅读全文
lintcode 中等题:subsets II 带重复元素的子集
摘要:题目带重复元素的子集给定一个可能具有重复数字的列表,返回其所有可能的子集样例如果 S =[1,2,2],一个可能的答案为:[ [2], [1], [1,2,2], [2,2], [1,2], []]注意子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集挑战你可...
阅读全文
lintcode 中等题:subSets 子集
摘要:题目子集给定一个含不同整数的集合,返回其所有的子集样例如果 S =[1,2,3],有如下的解:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]注意子集中的元素排列必须是非降序的,解集必须不包含重复的子集挑战你可以同时用递归与非递归的...
阅读全文
lintcode 中等题:permutations II 重复数据的全排列
摘要:题目带重复元素的排列给出一个具有重复数字的列表,找出列表所有不同的排列。样例给出列表[1,2,2],不同的排列有:[ [1,2,2], [2,1,2], [2,2,1]]挑战使用递归和非递归分别完成该题。解题和上面差不多,增加判断res中是否已经存在该排列的语句,这种方法不是很好,但是竟然也...
阅读全文
lintcode 中等题:permutations 全排列
摘要:题目全排列给定一个数字列表,返回其所有可能的排列。您在真实的面试中是否遇到过这个题?Yes样例给出一个列表[1,2,3],其全排列为:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]挑战使用递归和非递归分别解决。解题深度优先遍...
阅读全文
lintcode 中等题:Min stack 最小栈
摘要:题目带最小值操作的栈 实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop和min操作,所有操作要求都在O(1)时间内完成。解题可以定义一个数组或者其他的存储最小值,第i个元素,表示栈中前i个元素的最小值。定义两个ArrayList来存储栈,一个Ar...
阅读全文
lintcode: 二叉查找树中搜索区间
摘要:题目 给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x (k1 <= x <= k2) 其中 x 是二叉查找树的中的节点值。返回所有升序的节点值。 如果有 k1 = 10 和 k2 = 22, 你的程序应该返回 [12
阅读全文
lintcode 中等题:kth-largest-element 第k大元素
摘要:题目第k大元素在数组中找到第k大的元素样例给出数组[9,3,2,4,8],第三大的元素是4给出数组[1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推注意你可以交换数组中的元素的位置挑战要求时间复杂度为O(n),空间复杂度为O(1)解题理论快速排序的思想,每次都减半...
阅读全文
|
|
|