算法-动态规划
文章平均质量分 68
chaoai_4278
搜索业务研发总监
展开
-
单词拆分 I
给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。您在真实的面试中是否遇到过这个题?Yes样例给出s = "lintcode"dict = ["lint","code"]返回 true 因为"lintcode"可以被空格切分成"lint code"点题:不断地优化提前返回原创 2017-12-23 18:54:08 · 406 阅读 · 0 评论 -
子数组最大差
给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。返回这个最大的差值。注意事项子数组最少包含一个数您在真实的面试中是否遇到过这个题?Yes样例给出数组[1, 2, -3, 1],返回 6挑战时间复杂度为O(n),空间原创 2018-01-13 13:27:59 · 243 阅读 · 0 评论 -
最小和子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。注意事项子数组最少包含一个数字您在真实的面试中是否遇到过这个题?Yes样例给出数组[1, -1, -2, 1],返回 -3解法1:class Solution {public: /* * @par原创 2018-01-12 20:48:14 · 600 阅读 · 0 评论 -
最大和子数组2
给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。注意事项子数组最少包含一个数您在真实的面试中是否遇到过这个题?Yes样例给出数组 [1, 3, -1, 2, -1, 2]这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者原创 2018-01-12 20:38:15 · 163 阅读 · 0 评论 -
最大和子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。注意事项子数组最少包含一个数您在真实的面试中是否遇到过这个题?Yes样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6挑战要求时间复杂度为O(n)理解精髓原创 2018-01-12 20:30:01 · 92 阅读 · 0 评论 -
最大和子数组3
给定一个整数数组和一个整数 k,找出k 个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。注意事项子数组最少包含一个数您在真实的面试中是否遇到过这个题?Yes样例给出数组 [-1,4,-2,3,-2,3] 以及 k =2,返回8点题:边界条件,很巧妙原创 2018-01-12 20:40:53 · 219 阅读 · 0 评论 -
最佳买卖股票时间IV
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成 k 笔交易。注意事项你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票)您在真实的面试中是否遇到过这个题?Yes样例给定价格 = [4,4,6,1,1,4,2,5], 且 k = 2, 返回 6.挑战O(nk) 时间序列。点题:这道题花了我很长时间来理解,特别是global/lo...原创 2018-01-09 21:19:05 · 504 阅读 · 0 评论 -
局部全局思路总结
Maximum Subarray III Description Notes Testcase JudgeGiven an array of integers and a number k, find k non-overlapping subarrays which have the largest sum.The number in each subarray should be contig...原创 2018-02-22 15:00:27 · 318 阅读 · 0 评论 -
总结-博奕类
There are n coins in a line. Two players take turns to take one or two coins from right side until there are no more coins left. The player who take the last coin wins.Could you please decide the firs...原创 2018-02-19 20:07:47 · 139 阅读 · 0 评论 -
区间DP总结
Scramble String Description Notes Testcase JudgeGiven a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.Below is one possible representation ...原创 2018-02-22 15:18:46 · 151 阅读 · 0 评论 -
杆子分割
给一个 n 英寸长的杆子和一个包含所有小于 n 的尺寸的价格. 确定通过切割杆并销售碎片可获得的最大值.例如,如果棒的长度为8,并且不同长度部件的值如下,则最大可获得值为 22(通过切割两段长度 2 和 6 )您在真实的面试中是否遇到过这个题? 是样例长度 | 1 2 3 4 5 6 7 8 ---------------------------------...原创 2018-07-16 11:59:57 · 257 阅读 · 0 评论 -
买卖股票的最佳时机 III
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。注意事项你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票)您在真实的面试中是否遇到过这个题?Yes样例给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6点题原创 2018-01-09 15:40:07 · 224 阅读 · 0 评论 -
最大正方形
在一个二维01矩阵中找到全为1的最大正方形您在真实的面试中是否遇到过这个题?Yes样例1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 4class Solution {public: /* * @param matrix: a matrix of 0 and 1原创 2018-01-24 19:44:20 · 145 阅读 · 0 评论 -
分割回文串 II
给定一个字符串s,将s分割成一些子串,使每个子串都是回文。返回s符合要求的的最少分割次数。您在真实的面试中是否遇到过这个题?Yes样例比如,给出字符串s = "aab",返回 1, 因为进行一次分割可以将字符串s分割成["aa","b"]这样两个回文子串点题:一定要小心又小心,不要在最简单的地方翻船!!!!! i+原创 2017-12-24 10:29:56 · 163 阅读 · 0 评论 -
最长公共子序列
给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。您在真实的面试中是否遇到过这个题?Yes说明最长公共子序列的定义:最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。https原创 2017-12-24 17:52:58 · 98 阅读 · 0 评论 -
数字三角形
给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。注意事项如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。点题:从上往下,也可以从下往上class Solution {public: /* * @param triangle: a list of l原创 2017-12-22 08:42:01 · 160 阅读 · 0 评论 -
最小路径和
给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。注意事项你在同一时间只能向下或者向右移动一步点题:越是简单,越容易犯错。勿以题小而不为!1. 溢出安全,凡是涉及到+, *的地方,都要考虑到溢出安全2. 边界条件class Solution {public:原创 2017-12-22 19:14:13 · 272 阅读 · 0 评论 -
Unique Paths II
"不同的路径" 的跟进问题:现在考虑网格中有障碍物,那样将会有多少条不同的路径?网格中的障碍和空位置分别用 1 和 0 来表示。注意事项m 和 n 均不超过100点题:边界条件,读题理清题意class Solution {public: /* * @param obstacleGrid: A list原创 2017-12-22 20:58:24 · 139 阅读 · 0 评论 -
最长上升子序列
给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题?Yes说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_incre原创 2017-12-23 17:00:45 · 93 阅读 · 0 评论 -
最长公共子串
给出两个字符串,找到最长公共子串,并返回其长度。注意事项子串的字符应该连续的出现在原字符串中,这与子序列有所不同。您在真实的面试中是否遇到过这个题?Yes样例给出A=“ABCD”,B=“CBCE”,返回 2点题:和最长公共子序列的区别class Solution {public:原创 2017-12-24 19:53:59 · 95 阅读 · 0 评论 -
编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题?Yes样例给出 work1="mart" 和 work2="karma"class Solution {public:原创 2017-12-25 09:03:23 · 233 阅读 · 0 评论 -
不同的子序列
给出字符串S和字符串T,计算S的不同的子序列中T出现的个数。子序列字符串是原始字符串通过删除一些(或零个)产生的一个新的字符串,并且对剩下的字符的相对位置没有影响。(比如,“ACE”是“ABCDE”的子序列字符串,而“AEC”不是)。 您在真实的面试中是否遇到过这个题?Yes样例给出S = "rabbbit", T = "rabbit"原创 2017-12-25 13:51:20 · 771 阅读 · 0 评论 -
交叉字符串
给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。您在真实的面试中是否遇到过这个题?Yes样例比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 = "aadbbcbcac",返回 true. - 当 s3 = "aadbbbaccc", 返回 false.点题:还是边界原创 2017-12-25 16:04:40 · 139 阅读 · 0 评论 -
Jump game
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Determine if yo原创 2018-01-31 16:44:52 · 136 阅读 · 0 评论 -
最小调整代价
给一个整数数组,调整每个数的大小,使得相邻的两个数的差不大于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。你可以假设数组中每个整数都是正整数,且小于等于100。您在真实的面试中是否遇到过这个题? 是样例对于数组[1, 4, 2, 3]和target=1,最小的调整方案是调整为[2, 3, 2, 3],调整代价之和是2。返回2。class Solut...原创 2018-07-13 15:07:57 · 183 阅读 · 0 评论