
LintCode
俺 也一样
这个作者很懒,什么都没留下…
展开
-
两数相乘
给出两个链表形式表示的数字,写一个函数得到这两个链表相乘乘积。样例样例 1:输入:9->4->6->null,8->4->null输出:79464解释:946*84=79464样例 2:输入:3->2->1->null,1->2->null输出:3852解释:321*12=3852/** *...原创 2019-10-28 15:51:16 · 1447 阅读 · 0 评论 -
乘积最大子序列
找出一个序列中乘积最大的连续子序列(至少包含一个数)。样例样例 1:输入:[2,3,-2,4]输出:6样例 2:输入:[-1,2,4,1]输出:8注意事项乘积最大的子序列的积,小于2147483647class Solution {public: /** * @param nums: An array of integers...原创 2019-10-28 15:51:22 · 95 阅读 · 0 评论 -
最长有效括号
给出一个只包含'('和')'的字符串,找出其中最长的左右括号正确匹配的合法子串。样例样例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"样例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"注意事项返回的子串的所有子串括号也都符合要求class Solution {public: ...原创 2019-10-15 18:15:52 · 154 阅读 · 0 评论 -
爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有piles[i]根香蕉。警卫已经离开了,将在H小时后回来。珂珂可以决定她吃香蕉的速度K(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉...原创 2019-10-15 17:45:44 · 605 阅读 · 0 评论 -
数组中两个数字的最大异或
给定一个非空数组,a0,a1,a2,…,an-1,其中 0 ≤ ai < 2^31。找出 ai XOR aj的最大结果,其中 0 ≤ i, j < n。样例样例1输入:[3, 10, 5, 25, 2, 8]输出:28说明:最大的结果为 5 ^ 25 = 28样例2输入:[2,4]输出:6挑战你能在 O(n) 时间内解决吗?...原创 2019-10-15 17:36:41 · 389 阅读 · 0 评论 -
统计数字
计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。样例样例 1:输入:k = 1, n = 1输出:1解释:在 [0, 1] 中,我们发现 1 出现了 1 次 (1)。样例 2:输入:k = 1, n = 12输出:5解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 ...原创 2019-07-12 16:58:25 · 112 阅读 · 0 评论 -
第k大元素
在数组中找到第 k 大的元素。样例样例 1:输入:n = 1, nums = [1,3,4,2]输出:4样例 2:输入:n = 3, nums = [9,3,2,4,8]输出:4挑战要求时间复杂度为O(n),空间复杂度为O(1)。注意事项你可以交换数组中的元素的位置class Solution {public: /** ...原创 2019-07-13 08:24:50 · 262 阅读 · 0 评论 -
旋转字符串
给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)样例样例 1:输入: str="abcdefg", offset = 3输出: str = "efgabcd" 样例解释: 注意是原地旋转,即str旋转后为"efgabcd"样例 2:输入: str="abcdefg", offset = 0输出: str = "abc...原创 2019-07-13 08:42:39 · 172 阅读 · 0 评论 -
Fizz Buzz 问题
给你一个整数n. 从1到n按照下面的规则打印每个数:如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 如果这个数既不能被3整除也不能被5整除,打印数字本身。样例比如n=15, 返回一个字符串数组:[ "1", "2", "fizz", "4", "buzz", "fiz...原创 2019-07-13 08:50:08 · 171 阅读 · 0 评论 -
二叉查找树中搜索区间
给定一个二叉查找树和范围[k1, k2]。按照升序返回给定范围内的节点值。样例样例 1:输入:{5},6,10输出:[] 5它将被序列化为 {5}没有数字介于6和10之间样例 2:输入:{20,8,22,4,12},10,22输出:[12,20,22]解释: 20 / \ 8 22 / \...原创 2019-11-27 17:00:16 · 387 阅读 · 0 评论 -
带最小值操作的栈
实现一个栈, 支持以下操作:push(val)将 val 压入栈 pop()将栈顶元素弹出, 并返回这个弹出的元素 min()返回栈中元素的最小值要求 O(1) 开销.样例样例 2:输入: push(1) min() push(2) min() push(3) min()输出: 1 1 1注意事项保证栈中没有数字时不...原创 2019-07-14 08:17:37 · 286 阅读 · 0 评论 -
. 翻转链表
翻转一个链表样例样例 1:输入: 1->2->3->null输出: 3->2->1->null样例 2:输入: 1->2->3->4->null输出: 4->3->2->1->null挑战在原地一次翻转完成/** * Definition of singly-l...原创 2019-07-14 08:17:16 · 144 阅读 · 0 评论 -
两数之和
给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到n-1。样例Example1:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].Example2:给出 numbers = [15, 2, 7,...原创 2019-07-15 08:11:32 · 96 阅读 · 0 评论 -
合并排序数组 II
合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。样例样例 1:输入: A=[1], B=[1]输出:[1,1] 样例解释: 返回合并后的数组。样例 2:输入: A=[1,2,3,4], B=[2,4,5,6]输出: [1,2,2,3,4,4,5,6] 样例解释: 返回合并后的数组。挑战你能否优化你的算法,如果其中一个数组很大而另一个数组...原创 2019-07-15 08:11:26 · 125 阅读 · 0 评论 -
二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例样例 1: 输入:[1,4,4,5,7,7,8,9,9,10],1 输出: 0 样例解释: 第一次出现在第0个位置。样例 2: 输入: [1, 2, 3, 3, 4, 5, 10],3 输...原创 2019-07-15 08:11:20 · 111 阅读 · 0 评论 -
翻转链表 II
翻转链表中第m个节点到第n个节点的部分样例例1:输入: 1->2->3->4->5->NULL, m = 2 and n = 4, 输出: 1->4->3->2->5->NULL.例2:输入: 1->2->3->4->NULL, m = 2 and n = 3, 输出: 1->3...原创 2019-07-15 08:11:14 · 125 阅读 · 0 评论 -
反转一个3位整数
反转一个只有3位数的整数。样例样例 1:输入: number = 123输出: 321样例 2:输入: number = 900输出: 9注意事项你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000。class Solution {public: /** * @param number: A 3-di...原创 2019-07-15 08:11:07 · 149 阅读 · 0 评论 -
主元素
给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例样例 1:输入: [1, 1, 1, 1, 2, 2, 2]输出: 1样例 2:输入: [1, 1, 1, 2, 2, 2, 2]输出: 2挑战要求时间复杂度为O(n),空间复杂度为O(1)注意事项你可以假设数组非空,且数组中总是存在主元素。...原创 2019-07-15 08:10:55 · 189 阅读 · 0 评论 -
主元素 II
给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。样例例1:输入: [99,2,99,2,99,3,3], 输出: 99.例2:输入: [1, 2, 1, 2, 1, 3, 3], 输出: 1.挑战要求时间复杂度为O(n),空间复杂度为O(1)。注意事项数组中只有唯一的主元素class Solutio...原创 2019-07-15 08:11:02 · 116 阅读 · 0 评论 -
主元素 III
给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。样例例1:输入: [3,1,2,3,2,3,3,4,4,4] and k=3, 输出: 3.例2:输入: [1,1,2] and k=3, 输出: 1.挑战要求时间复杂度为O(n),空间复杂度为O(k)注意事项数组中只有唯一的主元素class Solution...原创 2019-07-15 08:10:48 · 102 阅读 · 0 评论 -
全排列
给定一个数字列表,返回其所有可能的排列。样例样例 1:输入:[1]输出:[ [1]]样例 2:输入:[1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]挑战使用递归和非递归分别解决。注意事项你可以假设没有重复数字。全排列问题参考...原创 2019-07-27 09:01:06 · 68 阅读 · 0 评论 -
带重复元素的排列
给出一个具有重复数字的列表,找出列表所有不同的排列。样例样例 1:输入:[1,1]输出:[ [1,1]]样例 2:输入:[1,2,2]输出:[ [1,2,2], [2,1,2], [2,2,1]]挑战使用递归和非递归分别完成该题。class Solution {public: /* * @param :...原创 2019-12-10 13:35:21 · 353 阅读 · 0 评论 -
搜索二维矩阵
写出一个高效的算法来搜索m×n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每行的第一个数大于上一行的最后一个整数。样例样例 1: 输入: [[5]],2 输出: false 样例解释: 没有包含,返回false。样例 2: 输入: [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30...原创 2019-07-16 08:13:28 · 96 阅读 · 0 评论 -
搜索二维矩阵 II
写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。样例例1:输入:[[3,4]]target=3输出:1例2:输入: [ [1, 3, 5, 7], [2, 4, 7, 8], ...原创 2019-07-16 08:13:17 · 95 阅读 · 0 评论 -
恢复旋转排序数组
给定一个旋转排序数组,在原地恢复其排序。样例Example1:[4, 5, 1, 2, 3]->[1, 2, 3, 4, 5]Example2:[6,8,9,1,2]->[1,2,6,8,9]挑战使用O(1)的额外空间和O(n)时间复杂度说明什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1...原创 2019-07-16 08:12:58 · 123 阅读 · 0 评论 -
第一个错误的代码版本
代码库的版本号是从 1 到n的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过isBadVersion的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。样例n = 5: isBadVersion(3) -> false isBa...原创 2019-07-19 08:32:11 · 119 阅读 · 0 评论 -
寻找峰值
你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的 A[0] < A[1] 并且 A[n - 2] > A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。样例样例 1: 输入: [1, 2, 1, 3, 4, 5, 7, 6] 输出: 1 or 6...原创 2019-07-19 08:32:17 · 188 阅读 · 0 评论 -
重排链表
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。样例样例 1:输入: list = null, x = 0输出: null 样例解释: 空链表本身满足要求样例 2:输入: list = 1->4->3->2->5->2->null, x = 3输出:...原创 2019-07-19 08:32:05 · 155 阅读 · 0 评论 -
删除排序数组中的重复数字
给定一个排序数组,在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。样例样例 1:输入: []输出: 0样例 2:输入: [1,1,2]输出: 2 解释: 数字只出现一次的数组为: [1,2]输入测试数据(每行一个参数)如何理解测试数据?cl...原创 2019-07-19 08:31:55 · 214 阅读 · 0 评论 -
删除排序数组中的重复数字 II
给你一个排序数组,删除其中的重复元素,使得每个数字最多出现两次,返回新的数组的长度。如果一个数字出现超过2次,则这个数字最后保留两个。样例样例 1: 输入: [] 输出: 0样例 2: 输入: [1,1,1,2,2,3] 输出: 5 样例解释: 长度为 5, 数组为:[1,1,2,2,3]注意事项需要在原数组中操作class Solut...原创 2019-07-19 08:31:49 · 356 阅读 · 0 评论 -
带环链表
给定一个链表,判断它是否有环。样例```样例 1: 输入: 21->10->4->5, then tail connects to node index 1(value 10). 输出: true 样例 2: 输入: 21->10->4->5->null 输出: false```挑战不要使用额外的空间快慢指...原创 2019-07-19 08:31:43 · 82 阅读 · 0 评论 -
带环链表 II
给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。样例样例 1:输入:null,no cycle输出:no cycle解释:链表为空,所以没有环存在。样例 2:输入:-21->10->4->5,tail connects to node index 1输出:10解释:最后一个节点5指向下标为1的节点,也就是...原创 2019-07-19 08:31:38 · 152 阅读 · 0 评论 -
大小写转换
将一个字符由小写字母转换为大写字母样例样例 1:输入: 'a'输出: 'A'样例 2:输入: 'b'输出: 'B'lintcode上的神题 .....贼舒服class Solution {public: /** * @param character: a character * @return: a character ...原创 2019-07-19 08:31:33 · 265 阅读 · 0 评论 -
二叉树的最小深度
给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的最短路径上的节点数量。样例样例 1:输入: {}输出: 0样例 2:输入: {1,#,2,3}输出: 3 解释: 1 \ 2 / 3 它将被序列化为 {1,#,2,3}样例 3:输入: {1,2,3,#,#,4,5}输出: 2 解释: ...原创 2019-07-19 08:31:28 · 81 阅读 · 0 评论 -
字符大小写排序
给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。样例样例 1: 输入: "abAcD" 输出: "acbAD"样例 2: 输入: "ABC" 输出: "ABC" 挑战在原地扫描一遍完成注意事项小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。遇到一个小写字符就往前找看看有没有大写的,有就交换c...原创 2019-07-17 07:40:00 · 911 阅读 · 0 评论 -
数组剔除元素后的乘积
给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。请输出B。样例样例 1输入: A = [1, 2, 3]输出: [6, 3, 2]解析:B[0] = A[1] * A[2] = 6; B[1] = A[0] * A[2] = 3; B[2] = A[0] * A[1] =...原创 2019-07-17 07:39:54 · 190 阅读 · 0 评论 -
下一个排列
给定一个整数数组来表示排列,找出其之后的一个排列。样例例1:输入:[1]输出:[1]例2:输入:[1,3,2,3]输出:[1,3,3,2]例3:输入:[4,3,2,1]输出:[1,2,3,4]注意事项排列中可能包含重复的整数很蛋疼的一个错误 , 最大的序列的下一个序列竟然是最小的 .....class Solution {p...原创 2019-07-17 07:39:48 · 78 阅读 · 0 评论 -
比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是大写字母样例给出 A ="ABCD"B ="ACD",返回true给出 A ="ABCD"B ="AABC", 返回false注意事项在 A 中出现的 B 字符串里的字符不需要连续或者有序。建立hash表class Solution {public: /** ...原创 2019-07-17 07:39:42 · 124 阅读 · 0 评论 -
二叉树的前序遍历
给出一棵二叉树,返回其节点值的前序遍历。样例样例 1:输入:{1,2,3}输出:[1,2,3]解释: 1 / \ 2 3它将被序列化为{1,2,3}前序遍历样例 2:输入:{1,#,2,3}输出:[1,2,3]解释:1 \ 2 /3它将被序列化为{1,#,2,3}前序遍历挑战你能使用非递归实现么?注意事项首个数...原创 2019-07-17 07:39:37 · 129 阅读 · 0 评论 -
二叉树的中序遍历
给出一棵二叉树,返回其中序遍历样例样例 1:输入:{1,2,3}输出:[2,1,3]解释: 1 / \ 2 3它将被序列化为{1,2,3}中序遍历样例 2:输入:{1,#,2,3}输出:[1,3,2]解释:1 \ 2 /3它将被序列化为{1,#,2,3}中序遍历挑战你能使用非递归算法来实现么?/** * ...原创 2019-07-17 07:39:30 · 83 阅读 · 0 评论