动态规划
文章平均质量分 73
iyangdi
这个作者很懒,什么都没留下…
展开
-
Google算法题:目标和
题目题目来源:Link分析代码package com.graph;import java.util.*;public class Solution{ int sum=0; int count=0; int tar; int[] as; int n; //方法一:树的遍历,剪枝 /原创 2017-08-07 19:05:55 · 367 阅读 · 0 评论 -
Google算法题:不同的子序列出现目标串的次数
题目九章算法链接给出字符串S和字符串T,计算S的不同的子序列中T出现的个数。子序列字符串是原始字符串通过删除一些(或零个)产生的一个新的字符串,并且对剩下的字符的相对位置没有影响。(比如,“ACE”是“ABCDE”的子序列字符串,而“AEC”不是)。样例intput: S=“1234”,T=“”output: 1原创 2017-08-26 12:19:49 · 916 阅读 · 0 评论 -
LintCode:M-背包问题 II
LintCode链接给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大? 注意事项A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。您在真实的面试中是否遇到过这个题? Yes样例对于物品体积[原创 2017-08-26 12:35:06 · 316 阅读 · 0 评论 -
Google算法题:吹气球/合石子(区间动态规划)
https://mp.weixin.qq.com/s?__biz=MzA5MzE4MjgyMw==&mid=401898450&idx=1&sn=fe4f8fa3bb37c5efce14a5567a523422&mpshare=1&scene=1&srcid=0317yIVobCsqLWHoivnzZ7WV&key=5657e61c2ec7753da39602d28107ebab91eb8417c原创 2017-08-23 15:13:03 · 1264 阅读 · 0 评论 -
LeetCode:M-583. Delete Operation for Two Strings
LeetCode链接Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string.Ex原创 2017-09-13 11:02:07 · 360 阅读 · 0 评论 -
LintCode:M-硬币排成线 II
题目LintCode:Link九章算法:Google Ref - 翻转游戏思路参考:Link有 n 个不同价值的硬币排成一条线。两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes原创 2017-08-23 20:51:22 · 343 阅读 · 0 评论 -
LintCode:M-乘积最大子序列
LintCode:链接找出一个序列中乘积最大的连续子序列(至少包含一个数)。您在真实的面试中是否遇到过这个题? Yes样例比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。分析当全部为正数的时候,乘积肯定为最大,但是由于有负数出现,只有偶数情况的负数才能转正所以前面乘积原创 2017-08-28 13:52:37 · 240 阅读 · 0 评论 -
LintCode:M-最大正方形
LintCode链接在一个二维01矩阵中找到全为1的最大正方形您在真实的面试中是否遇到过这个题? Yes样例1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 4分析(1)方法一:一般性方法,可以扩展到最大矩形计算1、以每一行为矩形底,计算每一列的含原创 2017-08-30 11:05:11 · 315 阅读 · 0 评论 -
LintCode:M-抢劫房屋|||
LintCode链接在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多原创 2017-08-30 13:06:15 · 369 阅读 · 0 评论 -
LintCode:M-房屋染色
LintCode链接这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。 注意事项所有费用都是正整数您原创 2017-08-30 18:38:57 · 434 阅读 · 0 评论 -
LintCode:M-单词切分
LintCode链接给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。您在真实的面试中是否遇到过这个题? Yes样例给出s = "lintcode"dict = ["lint","code"]返回 true 因为"lintcode"可以被空格切分成"lint code"原创 2017-08-31 09:36:42 · 213 阅读 · 0 评论 -
LeetCode:M-139. Word Break
LeetCode链接Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictiona原创 2017-09-25 13:40:02 · 389 阅读 · 0 评论 -
LeetCode:M-279. Perfect Squares
LeetCode链接Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.For example, given n = 12, return 3 because 12 =原创 2017-09-25 14:57:13 · 310 阅读 · 0 评论 -
Google/LintCode:M-Palindrome Partitioning II
LintCode链接九章算法链接Given a string s, cut s into some substrings such that every substring is a palindrome.Return the minimum cuts needed for a palindrome partitioning of s.Have you原创 2017-08-25 17:28:41 · 178 阅读 · 0 评论 -
LintCode:M-Longest Palindromic Substring
LintCode: Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique lon原创 2017-08-25 16:49:39 · 203 阅读 · 0 评论 -
Google/LintCode:M-超级丑数
题目题目来源:Link写一个程序来找第 n 个超级丑数。超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] 是前 12 个超级丑数。1 永远都是原创 2017-08-10 10:35:54 · 311 阅读 · 0 评论 -
MicroSoft/LintCode:M-打劫房屋 II
题目题目来源:Link在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果原创 2017-08-13 11:59:47 · 244 阅读 · 0 评论 -
Google算法题:H-最优账户结余
https://mp.weixin.qq.com/s?__biz=MzA5MzE4MjgyMw==&mid=2649457159&idx=1&sn=288df3eceffd60138bcd85f4b14b625a&chksm=887eec0fbf096519442d0881943da2c51d0bc4b4ae88056c903590b5031cd7206badfcffb601&mpshare=1&原创 2017-08-20 15:23:14 · 624 阅读 · 2 评论 -
LintCode:H-求K数和
http://www.lintcode.com/zh-cn/problem/k-sum/给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,[1,4] and原创 2017-08-20 17:46:52 · 405 阅读 · 0 评论 -
LintCode:M-打劫房屋
http://www.lintcode.com/zh-cn/problem/house-robber/假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最原创 2017-08-20 17:57:38 · 224 阅读 · 0 评论 -
Google算法题:不包含连续1的非负整数
题目分析每一步的选择都依赖前一步的选择,是前面选择的组合,子问题重合,所以用动态规划代码package com.graph;import java.util.*;public class Solution { public int solve(int n){ if(n==0) return 1; String binary = Integer.原创 2017-08-06 09:52:24 · 1008 阅读 · 0 评论 -
Google算法题:矩阵中的最长上升路径
题目题目来源:Link分析1、自底向上(1)对原始数据排序成List(2)遍历List,从最小的 x 开始计算路径(3)对于当前遍历的节点 x , 检查其四周的点,如果四周点大于自身且 x 路径长+1 大于四周点记录的当前记录的最大路径长,则更新其路径值及路径来源(4)记录路径最大点位置(5)根据最大点位置重构路径2、备忘录的自顶向下(1)遍历数组原创 2017-08-06 15:27:33 · 870 阅读 · 0 评论 -
Google算法题:最大可分子集
题目题目来源:Link分析(1)数组排序,保证后面数的因子都在前面出现(2)当前 nums[i] 与 0~i-1 间的 nums[k] 比较,取满足条件的 nums[k] 且 他代表的子集最大,将 nums[i] 加入。 因为要满足取余数为0, 则后面的都是前面的倍数,只要比较子集的尾巴,满足 nums[i] % nums[k] == 0,就原创 2017-08-06 20:56:42 · 535 阅读 · 0 评论 -
Google面试题:数字计数
题目题目来源:Link分析代码package com.graph;import java.util.*;public class Solution{ List factorial = new ArrayList(); public int solve(int n){ if (n==0) {//易遗漏原创 2017-08-07 11:41:40 · 336 阅读 · 0 评论 -
LintCode:M-Palindrome Partitioning
LintCode:LinkGiven a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.Have you met this question in a r原创 2017-08-24 23:09:02 · 170 阅读 · 0 评论 -
Google算法题:扔鸡蛋/扔棋子
http://www.jiuzhang.com/article/%E4%B9%9D%E7%AB%A0%E7%AE%97%E6%B3%95%E7%B2%BE%E9%80%89%E9%9D%A2%E8%AF%95%E9%A2%9822%20%E6%89%94%E6%A3%8B%E5%AD%90/http://www.jiuzhang.com/article/Google%202016%E5%B原创 2017-08-22 11:43:43 · 916 阅读 · 0 评论 -
Google算法题:M-编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yeshttp://www.jiuzhang.com/article/Google2016Experience%20%E8%BD%AF%E4原创 2017-08-22 14:15:19 · 426 阅读 · 0 评论 -
LintCode:M-不同的二叉查找树个数
LintCode链接给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3原创 2017-08-31 16:44:17 · 379 阅读 · 0 评论