lintcode
文章平均质量分 70
Michael_yan2015
这个作者很懒,什么都没留下…
展开
-
接雨水
网址:http://www.lintcode.com/zh-cn/problem/trapping-rain-water/题目描述:给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水。样例如上图所示,海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返回 6.思路:计算原创 2016-04-08 22:39:04 · 532 阅读 · 0 评论 -
Flatten Nested List Iterator
Given a nested list of integers, implement an iterator to flatten it.Each element is either an integer, or a list -- whose elements may also be integers or other lists.样例Given the list原创 2016-04-23 00:29:09 · 929 阅读 · 1 评论 -
分割回文串
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的回文串分割方案。样例给出 s = "aab",返回[ ["aa", "b"], ["a", "a", "b"]]解题思路:DFS用一个数组记录分割的位置,每一次都是寻找下一个可以分割的位置public class Solution { /**原创 2016-05-08 19:22:35 · 1052 阅读 · 0 评论 -
加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。样例现在有4个加油站,汽油量gas[i]=[1, 1, 3, 1原创 2016-05-08 20:17:51 · 377 阅读 · 0 评论 -
最大正方形
在一个二维01矩阵中找到全为1的最大正方形您在真实的面试中是否遇到过这个题? Yes样例1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 4思路:因为是求正方形,所以只要求正方形的边长就可以(这样比用面积表示更方便)。动态规划:转移方程:如果matrix[i][j]=0,dp[i][原创 2016-07-03 23:37:30 · 646 阅读 · 0 评论 -
不同的二叉查找树
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1原创 2016-07-04 00:09:23 · 237 阅读 · 0 评论 -
不同的二叉查找树 II
给出n,生成所有由1...n为节点组成的不同的二叉查找树您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,生成所有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2原创 2016-07-04 10:41:55 · 1302 阅读 · 0 评论 -
k数和
给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案分析:动态规划dp(i , j , k)表示前i个数原创 2016-07-04 11:19:19 · 2214 阅读 · 2 评论 -
编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yes样例给出 work1="mart" 和 work2="karma"返回 3分析:动态规划:用dp(i, j)表示word1的字串(原创 2016-07-04 11:32:01 · 246 阅读 · 0 评论 -
最长上升子序列
给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题? Yes说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasi原创 2016-07-04 14:06:01 · 318 阅读 · 0 评论 -
[lintcode] 752. Rogue Knight Sven
时隔两年重回LintCode,多了好多题啊,赶紧刷一道找找感觉【题目描述】 https://www.lintcode.com/problem/rogue-knight-sven/descriptionIn material plane “reality”, there are n + 1 planets, namely planet 0, planet 1, …, planet n. E...原创 2018-05-12 19:52:19 · 435 阅读 · 0 评论 -
[lintcode] 814. Shortest Path in Undirected Graph
Description Give an undirected graph, in which each edge’s length is 1, and give two nodes from the graph. We need to find the length of the shortest path between the given two nodes.Example Given...原创 2018-05-13 14:24:03 · 417 阅读 · 0 评论 -
二叉树的序列化和反序列化
设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。样例给出一个测试数据样例, 二叉树{3,9,20,#,#,15,7},表示如下的树结构: 3 / \9 20原创 2016-05-07 18:28:08 · 522 阅读 · 0 评论 -
简化路径
给定一个文档(Unix-style)的完全路径,请进行路径简化。样例"/home/", => "/home""/a/./b/../../c/", => "/c"解题思路:可以把目录看成一棵树,则一条路径即为从树根到每个子节点的路径,一层层的走下去。如果当前层为 . 或者 空,则可以忽略如果当前层为 ..,则要回退到上一层目录代码:public原创 2016-05-07 12:54:32 · 2853 阅读 · 0 评论 -
Decode Ways
A message containing letters from A-Z is being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26Given an encoded message containing digits, determine the total nu原创 2016-04-22 12:03:51 · 242 阅读 · 0 评论 -
滑动窗口的最大值
网址:点击打开链接思路:先求出第一个窗口的最大值,并记录其下标。之后的每一个窗口的计算,都可以利用前一个窗口的计算结果(若前一个窗口的最大值的下标位于当前窗口内,而且此发生的概率为(k-1)/k,k越大其可能性越高),只需比较前一个窗口的最大值和当前窗口的最后一个值即可得出当前窗口的最大值。代码:public class Solution { /** * @param原创 2016-04-08 22:50:48 · 1272 阅读 · 0 评论 -
将表达式转换为逆波兰表达式
给定一个表达式字符串数组,返回该表达式的逆波兰表达式(即去掉括号)样例对于 [3 - 4 + 5]的表达式(该表达式可表示为["3", "-", "4", "+", "5"]),返回[3 4 - 5 +](该表达式可表示为 ["3", "4", "-", "5", "+"])。思路:看注释class Solution { /** * @para原创 2016-04-10 14:06:05 · 4632 阅读 · 0 评论 -
表达式求值
http://www.lintcode.com/zh-cn/problem/expression-evaluation/给一个用字符串表示的表达式数组,求出这个表达式的值。样例对于表达式 (2*6-(23+7)/(1+2)), 对应的数组为:[ "2", "*", "6", "-", "(", "23", "+", "7", ")", "/", (", "1原创 2016-04-10 14:46:25 · 346 阅读 · 0 评论 -
打劫房屋
假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。样例给定 [3, 8, 4], 返回 8.解题思路:动态规原创 2016-04-29 19:39:50 · 1125 阅读 · 0 评论 -
打劫房屋 II
在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情原创 2016-04-29 19:57:05 · 1484 阅读 · 0 评论 -
打劫房屋 III
在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多少钱,当然在不触动报警装置的原创 2016-04-30 14:21:07 · 1664 阅读 · 1 评论 -
连续子数组求和
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)样例给定 [-3, 1, 3, -3, 4], 返回[1,4].思路:如果数组全为负数,则选择其最大的即可。否则偏历一次,记录以下标i结尾的最大和子数组,如果当前子数组的和小于0,则更新子数组头(即 tb原创 2016-05-02 22:38:27 · 1020 阅读 · 0 评论 -
更新二进制位
给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)样例给出N = (10000000000)2,M = (10101)2, i = 2, j = 6返回 N = (10001010100)2解题:首先将N的第i位到第j位清0(注意位数从0开始),然后将M左移i位,将M和N相或即可得原创 2016-05-13 21:12:25 · 415 阅读 · 0 评论 -
排列序号
排列序号一给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。您在真实的面试中是否遇到过这个题? Yes样例例如,排列[1,2,4]是第1个排列。思路:1、由n个不重复数字刚才的排列有 n! 种;2、对所给排列从右到左(即从低位到高位)进行分析,下标i从0开始, 第i位的数字和其右边的某一个原创 2016-05-15 18:22:39 · 2001 阅读 · 0 评论 -
下一个排列
给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。如果没有下一个排列,则输出字典序最小的序列。样例左边是原始排列,右边是对应的下一个排列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1思路:1、先从右到左找到第一个不属于非最大字典序排列的元素L,若没找到,即原序列为最大字典序,直接排序原创 2016-04-21 22:48:18 · 230 阅读 · 0 评论 -
Swap Two Nodes in Linked List
Given a linked list and two values v1 and v2. Swap the two nodes in the linked list with values v1 and v2. It's guaranteed there is no duplicate values in the linked list. If v1 or v2 does not exist原创 2016-04-22 10:23:08 · 265 阅读 · 0 评论 -
[lintCode] 178. Graph Valid Tree
描述https://www.lintcode.com/problem/graph-valid-tree/description Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), write a function to check whethe...原创 2018-05-13 16:01:35 · 387 阅读 · 0 评论