每日一练
文章平均质量分 66
锤某
pow(1.01,365) = 37.8
展开
-
lintcode 滑动拼图2
lintcode 滑动拼图2描述样例思路代码描述在一个3x3的网格中,放着编号1到8的8块板,以及一块编号为0的空格。一次移动可以把空格0与上下左右四邻接之一的板子交换。给定初始和目标的板子排布,返回到目标排布最少的移动次数。如果不能从初始排布移动到目标排布,返回-1.样例初始排布:[[2,8,3],[1,0,4],[7,6,5]]目标排布:[[1,2,3],[8,...原创 2019-04-03 11:02:59 · 401 阅读 · 0 评论 -
lintcode骑士的最短路线
lintcode 骑士的最短路线描述说明样例思路代码描述给定骑士在棋盘上的 初始 位置(一个2进制矩阵 0 表示空 1 表示有障碍物),找到到达 终点 的最短路线,返回路线的长度。如果骑士不能到达则返回 -1 。说明如果骑士的位置为 (x,y),他下一步可以到达以下这些位置:(x + 1, y + 2)(x + 1, y - 2)(x - 1, y + 2)(x - 1, y - ...原创 2019-03-25 19:36:49 · 302 阅读 · 0 评论 -
lintcode 邮局的建立
lintcode 邮局的建立描述样例思考代码描述给出一个二维的网格,每一个格子上用 1 表示房子,0 表示空。要求在网格中,找到一个空地建立邮局,使得邮局到所有的房子的距离和最小。返回所有房子到邮局的最小距离和,如果不可能建邮局则返回-1。样例给出一个网格0 1 0 01 0 1 10 1 0 0返回 6 (把邮局设立在(1,1)这个位置时,邮局离所有的房子的距离是最近的)。思考...原创 2019-03-13 20:48:59 · 534 阅读 · 0 评论 -
lintcode 水果成篮
lintcode 水果成篮描述样例思考代码描述在一排树中,第 i 棵树产生 tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直...原创 2019-03-13 19:57:37 · 158 阅读 · 0 评论 -
lintcoe 频率最高的词
lintcode 频率最高的词描述样例思考代码描述给出一个字符串s,表示小说的内容,再给出一个list表示这些单词不参加统计,求字符串中出现频率最高的单词(如果有多个,返回字典序最小的那个)样例输入: s = “Jimmy has an apple, it is on the table, he like it”excludeWords = [“a”,“an”,“the”]输出:“it...原创 2019-03-25 13:36:54 · 141 阅读 · 0 评论 -
lintcode 具有K个不同字符的子串
lintcode 具有K个不同字符的子串描述样例思考代码描述给定字符串S和整数K.计算长度为K且包含K个不同字符的子串数样例String: “abcabc”K: 3Answer: 3substrings: [“abc”, “bca”, “cab”]String: “abacab”K: 3Answer: 2substrings: [“bac”, “cab”]思考维护一个...原创 2019-03-24 18:08:12 · 674 阅读 · 0 评论 -
lintcode 奇偶跳
lintcode 奇偶跳描述样例1.2.思路代码描述给定一个整数数组A。从某一些起始索引,你可以做一系列的跳跃。其中的(第1,第3,第5 …)跳跃称为奇数跳跃,(第2,第4,第6 …)跳跃称为偶数跳跃。你可以从索引i 以下列方式跳转到索引 j(i <j):在奇数跳跃(即跳跃1,3,5,…)期间,跳转到索引j,使得A [i] <= A [j]并且A [j]是可能的最小值。如果有多...原创 2019-03-12 18:43:12 · 290 阅读 · 0 评论 -
lintcode 两数和-小于或等于目标值
lintcode 两数和-小于或等于目标值描述样例思考代码描述给定一个整数数组,找出这个数组中有多少对的和是小于或等于目标值。返回对数。样例例1:输入: nums = [2, 7, 11, 15], target = 24.输出: 5.解释:2 + 7 < 242 + 11 < 242 + 15 < 247 + 11 < 247 + 15 < ...原创 2019-03-19 23:42:47 · 584 阅读 · 0 评论 -
lintcode 具有最大平均数的子树
lintcode 具有最大平均数的字树描述样例思考代码描述给一棵二叉树,找到有最大平均值的子树。返回子树的根结点样例样例 1输入:1/ -5 11/ \ / 1 2 4 -2输出:11(它是一个TreeNode)样例 2输入:1/ -5 11输出:11(它是一个TreeNode)思考使用一个函数来遍历这个二叉树。根据后...原创 2019-03-19 23:06:15 · 340 阅读 · 0 评论 -
lintcode 合并排序列表
lintcode 合并排序列表描述样例思考代码描述将两个排序链表合并为一个新的排序链表样例样例样例 1:输入: list1 = null, list2 = 0->3->3->null输出: 0->3->3->null样例2:输入: list1 = 1->3->8->11->15->null, list2 = 2...原创 2019-03-19 22:45:50 · 134 阅读 · 0 评论 -
lintcode 两数和的最接近值
lintcode 两数和的最接近值描述样例挑战思考代码描述给定整数数组num,从中找到两个数字使得他们和最接近target,返回两数和与 target 的差的 绝对值。样例样例1输入: nums = [-1, 2, 1, -4] 并且 target = 4输出: 1解释:最小的差距是1,(4 - (2 + 1) = 1).样例2输入: nums = [-1, -1, -1, -...原创 2019-03-19 22:39:33 · 405 阅读 · 0 评论 -
lintcode 会议室2
lintcode 会议室2描述样例思路代码描述给定一系列的会议时间间隔intervals,包括起始和结束时间[[s1,e1],[s2,e2],…] (si < ei),找到所需的最小的会议室数量。样例样例1输入: intervals = [(0,30),(5,10),(15,20)]输出: 2解释:需要两个会议室会议室1:(0,30)会议室2:(5,10),(15,20)...原创 2019-03-04 09:02:26 · 547 阅读 · 0 评论 -
lintcode 会议室
lintcode 会议室描述样例思路代码描述给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。样例样例1输入: intervals = [(0,30),(5,10),(15,20)]输出: false解释:(0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突样例2...原创 2019-03-04 08:07:04 · 277 阅读 · 0 评论 -
lintcode 基础计算器
lintcode 基础计算器描述样例思路代码描述实现一个基本的计算器来计算一个简单的表达式字符串。表达式字符串可以包含左括号 (和右括号 )、加号+或减号-、non-negative 整数和空格。表达式字符串只包含非负整数、+, -, *, /操作符、左括号 (,右括号 )和空格。您可以假设给定的表达式总是有效的。所有中间结果将在“[-2147483648,2147483647]”范围内...原创 2019-04-03 20:43:07 · 131 阅读 · 0 评论 -
lintcode 最长回文子串
lintcode 最长回文子串描述样例思考代码描述给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。样例样例 1:输入:“abcdzdcab”输出:“cdzdc”样例 2:输入:“aba”输出:“aba”思考使用Manacher算法。在每个字符后面增加一个#号,使得所有的回文串都变成奇数长度,维护一个一维数组用来记录新的字...原创 2019-03-24 17:24:23 · 158 阅读 · 0 评论 -
lintcode 滑动拼图
lintcode 滑动拼图描述样例思路代码描述在一块大小为 2x3 的板上,有 5 块瓦片,分别用整数 1 到 5 表示,还有一块空地用 0 表示。一次移动表示 0 与其相邻的四个方向之一的数字交换位置。当且仅当 这块板 上的瓦片摆放状态为 [[1,2,3],[4,5,0]] 时,才能说这块板存在的问题被解决了。board 会以上面讲的 2 x 3 大小的数组形式输入 。board[i...原创 2019-04-02 18:09:28 · 291 阅读 · 0 评论 -
lintcode 反向索引
lintcode 反向索引描述样例思路代码描述创建给定文档的反向索引确保数据不包含标点符号.样例出一个包括id与内容的文档list(我们提供了document类).返回一个反向索引(hashmap的key是单词, value是文档的id).例 1:输入:[{“id”: 1,“content”: “This is the content of document 1 it is...原创 2019-03-29 10:44:46 · 118 阅读 · 0 评论 -
lintcode 打劫房屋3
lintcode 打劫房屋3描述样例思路代码描述在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫...原创 2019-04-02 14:16:30 · 104 阅读 · 0 评论 -
lintcode 有效的括号序列
lintcode 有效的括号序列描述样例挑战思路代码描述给定一个字符串所表示的括号序列,包含以下字符: ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。括号必须依照 “()” 顺序表示, “()[]{}” 是有效的括号,但 “([)]” 则是无效的括号。样例样例 1:输入:"([)]"输出:False样例 2:输入:"()[]{}"输...原创 2019-03-28 13:16:15 · 189 阅读 · 0 评论 -
lintcode 打劫房屋2
lintcode 打劫房屋2描述样例思路代码描述在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打...原创 2019-04-01 17:28:10 · 88 阅读 · 0 评论 -
lincode 打劫房屋
lintcode 打劫房屋描述样例挑战思路代码描述假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,在不触动报警装置的情况下, 你最多可以得到多少钱 。样例样例 1:输入: [...原创 2019-04-01 11:44:24 · 224 阅读 · 0 评论 -
数据结构 线性表算法(二)
数据结构 线性表算法(二)链表的插入,删除,在原地合并排序链表// 线性表算法.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// 这个文件主要用于实现一些线性表的功能,包括顺序线性表,静态链表,循环链表,双向链表// 以及一个用链表实现的多项式// 为了方便和演示算法,顺序线性表直接使用了C++ STL库中的vector#include "pch.h"#...原创 2019-03-31 19:12:31 · 198 阅读 · 0 评论 -
lintcode 在排序数组中找最接近的K个数
lintcode 在排序数组中找最接近的K个数描述样例思路代码描述给一个目标数 target, 一个非负整数 k, 一个按照升序排列的数组 A。在A中找与target最接近的k个整数。返回这k个数并按照与target的接近程度从小到大排序,如果接近程度相当,那么小的数排在前面。k是一个非负整数,并且总是小于已排序数组的长度。给定数组的长度是正整数, 不会超过 10^4数组中元素的绝对值不...原创 2019-03-31 18:18:28 · 485 阅读 · 0 评论 -
lintcode 不允许成对
lintcode 不允许成对描述样例思路代码描述你有一家专门经营没有相邻匹配字符的单词的精品店。鲍比,一个竞争对手,已经决定完全退出这个业务并且你买了他的库存,你的想法是修改他的词汇库存,使他们适合在你的商店出售。为此,你找到所有相邻的匹配字符对,并将其中一个字符替换为另一个字符对。确定必须替换的最小字符数,以生成一个畅销词。例如,你购买了 words = [“odd”,“boook”,“tr...原创 2019-03-31 18:07:28 · 125 阅读 · 0 评论 -
lintcode 缺少的字符串
lintcode 缺少的字符串描述样例思路代码描述给出两个字符串,你需要找到缺少的字符串样例输入 : str1 = “This is an example”, str2 = “is example”输出 : [“This”, “an”]思路使用unordered_set来保存str2中的字符串,然后遍历str1中的字符串,如果不存在在set中,那么就加入到结果的数组当中这里使用到了...原创 2019-03-27 13:56:50 · 212 阅读 · 0 评论 -
lintcode 反转ASCII编码字符串
lintcode 反转ASCII编码字符串描述样例思考代码描述给定一个由ascii编码的字符串(例如,“ABC”可以编码为“656667”),您需要编写一个将编码字符串作为输入并返回反转的解码字符串的函数。您可以假设答案字符串中只有大写字母。样例样例1输入: “7976766972”输出: “HELLO”样例2输入: “656667”输出: “CBA”思考不断对输入的字符串...原创 2019-03-27 13:27:12 · 486 阅读 · 0 评论 -
lintcode 选票最多的人
lintcode 选票最多的人描述样例思路代码描述给定一个包含候选人姓名的数组. 数组中一个候选人的名字代表他获得了一张选票. 返回的票最多的人的名字.样例样例 1:输入:[“John”, “Johnny”, “Jackie”,“Johnny”, “John”, “Jackie”,“Jamie”, “Jamie”, “John”,“Johnny”, “Jamie”, “John...原创 2019-03-31 17:43:01 · 147 阅读 · 0 评论 -
lintcode 第k大元素
lintcode 第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)。思路使用快速排序的思路,第k大的元素就是排序完成之后的第nums.size() - ...原创 2019-02-27 11:09:12 · 153 阅读 · 0 评论 -
lintcode K个最近的点
lintcode K个最近的点描述样例思考代码描述给定一些 points 和一个 origin,从 points 中找到 k 个离 origin 最近的点。按照距离由小到大返回。如果两个点有相同距离,则按照x值来排序;若x值也相同,就再按照y值排序。样例例1:输入: points = [[4,6],[4,7],[4,4],[2,5],[1,1]], origin = [0, 0], k ...原创 2019-03-03 10:08:21 · 139 阅读 · 0 评论 -
lintcode 独特的电子邮件地址
lintcode 独特的电子邮件地址描述样例思路代码描述每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在 alice@lintcode.com中, alice 是本地名称,而 lintcode.com 是域名。除了小写字母,这些电子邮件还可能包含 ‘.’’ 或 ‘+’。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点(’.’),则发往那里的邮件将会转发到本地...原创 2019-02-26 11:36:33 · 445 阅读 · 0 评论 -
lintcode 二叉树的前序遍历
lincode 二叉树的前序遍历描述给出一棵二叉树,返回其节点值的前序遍历。样例给出一棵二叉树 {1,#,2,3},返回 [1,2,3].思路堆栈实现,先压入右儿子,再压入左儿子代码/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left,...原创 2019-02-16 09:42:34 · 108 阅读 · 0 评论 -
lintcode 丢鸡蛋
lintcode 丢鸡蛋描述楼有n层高,鸡蛋若从k层或以上扔,就会碎。从k层以下扔,就不会碎。现在给两个鸡蛋,用最少的扔的次数找到k。返回最坏情况下次数。样例对于n=10, 一种找k的初级方法是从1、2…k层不断找。但最坏情况下要扔10次。注意有两个鸡蛋可以使用,所以可以从4、7、9层扔。这样最坏就只需要4次(例如k=6时)。给出 n = 10, 返回 4.给出 n = 100, ...原创 2019-02-16 09:25:16 · 838 阅读 · 0 评论 -
lintcode 翻转链表2
lintcode 翻转链表2描述样例挑战思考代码描述翻转链表中第m个节点到第n个节点的部分m,n满足1 ≤ m ≤ n ≤ 链表长度样例例1:输入: 1->2->3->4->5->NULL, m = 2 and n = 4,输出: 1->4->3->2->5->NULL.例2:输入: 1->2->3->...原创 2019-02-21 15:28:19 · 115 阅读 · 0 评论 -
lintcode 订单
lintcode 订单问题描述现在有一个订单,对n 种商品有需求,对第 i 种商品的需求为 order[i] 个。工厂有 m 种生产模式,每种生产模式形如 [p[1],p[2],…p[n]],即同时生产第 1 种商品 p[1] 个,第 2 种商品 p[2] 个……你可以使用多种生产模式,请问在不超过任意一种商品的需求的情况下,未满足需求的商品最少有多少个?样例给出 order=[2,3,1...原创 2018-11-19 18:50:36 · 129 阅读 · 0 评论 -
lintcode 同和分割数组
lintcode 同和分割数组描述给定一个有n个整数的数组,需要找到满足以下条件的三胞胎(i, j, k):0 < i, i + 1 < j, j + 1 < k < n - 1每个子数组的和(0,i - 1), (i + 1, j - 1), (j + 1, k - 1)和(k + 1, n - 1)应该相等。我们定义子数组(L, R)表示原始数组从元素索引L到元...原创 2018-11-21 18:50:26 · 172 阅读 · 0 评论 -
lintcode 树上最长距离
lintcode 树上最长距离描述给出由n个结点,n-1条边组成的一棵树。求这棵树中距离最远的两个结点之间的距离。给出三个大小为n-1的数组starts,ends,lens,表示第i条边是从starts[i]连向ends[i],长度为lens[i]的无向边。返回的是树上任意两个结点的最远距离,而不是树的深度,注意给定的边是无向边。题目保证给出的边一定能构成一棵树。1≤n≤1∗10^5...原创 2018-11-14 21:12:20 · 435 阅读 · 0 评论 -
lintcode 染色问题
lintcode 染色问题描述有一个圆形,分成n个扇形,用m种颜色给每个扇形染色,相邻扇形颜色不能相同。求方案总数。不考虑对称性。由于这个数可能很大,因此只需返回方案数模1e9 + 7。1≤n≤1051 1≤n≤10^51≤m≤1051 1≤m≤105^5样例给定n = 2,m = 3,返回6。解释:一个圆划分为 2 个扇形,用 3 种颜色上色方案有“黑红,黑白,...原创 2018-11-12 20:42:40 · 309 阅读 · 0 评论 -
lintcode 删除排序数组中的重复数字
lintcode 删除排序数组中的重复数字描述给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。思路先说我的思路,删除重复的元素即可,使用vector的迭代器iteratorclass Solutio...原创 2018-11-08 23:35:55 · 144 阅读 · 0 评论 -
lintcode 有效括号的字符串
lintcode 有效括号的字符串描述给定一个只包含三种类型字符的字符串:’(’,’)'和 ‘*’, 编写一个函数来检查该字符串是否有效。 我们通过以下规则定义字符串的有效性:1.任何左括号 ‘(‘必须有一个相应的右括号’)’。2.任何右括号 ‘)’ 必须有一个相应的左括号’(’。3.左括号’(’ 必须在相应的右括号 ‘)’ 之前。4.*可以被视为单个右括号’)‘或单个左括号’('或空...原创 2018-11-13 22:31:02 · 129 阅读 · 0 评论 -
lintcode 链表倒数第n个节点
lintcode 链表倒数第n个节点每日一练 加油描述找到单链表倒数第n个节点,保证链表中节点的最少数量为n。样例给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.思路第一个反应,先检索出链表的长度Num,然后倒数第n个就是正数第Num-n+1个,就可以解决了,这样要遍历整个链表一次再遍历到第Num-n+1个位置,指针一共移动了...原创 2018-11-07 13:45:25 · 86 阅读 · 0 评论