动态规划贪心
文章平均质量分 65
dp 贪心
JingleLiA
这个作者很懒,什么都没留下…
展开
-
丢鸡蛋
题目链接:鸡蛋掉落题目描述:鸡蛋掉落难度困难496你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。你的目标是确切地知道 F 的值是多少。无原创 2020-10-11 21:37:35 · 254 阅读 · 0 评论 -
腾讯笔试题---假期
题目描述:链接:https://www.nowcoder.com/questionTerminal/7cd9a140387e455a972e8fea0e74be2c?f=discussion来源:牛客网由于业绩优秀,公司给小Q放了 n 天的假,身为工作狂的小Q打算在在假期中工作、锻炼或者休息。他有个奇怪的习惯:不会连续两天工作或锻炼。只有当公司营业时,小Q才能去工作,只有当健身房营业时,小Q才能去健身,小Q一天只能干一件事。给出假期中公司,健身房的营业情况,求小Q最少需要休息几天。输入描述:原创 2020-08-26 19:48:01 · 437 阅读 · 0 评论 -
整数拆分
题目链接:整数拆分题目描述:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。题目分析:拆分存在很多种组合,又求最大值,用Dp做。每个数组合时分为拆与不拆两个状态。代码:class Soluti原创 2020-07-30 11:00:36 · 456 阅读 · 0 评论 -
312. 戳气球
题目链接:戳气球题目描述:有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] =原创 2020-07-20 21:30:07 · 132 阅读 · 0 评论 -
leetcode买卖股票问题合集
题目链接:最佳买卖股票含冷冻时期题目描述:给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]题目分析:最大利润考虑用dp去做,状态转移原创 2020-07-10 12:04:00 · 205 阅读 · 0 评论 -
63. 不同路径 II
题目链接:不同路径II题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间原创 2020-07-08 14:20:15 · 513 阅读 · 0 评论 -
44. 通配符匹配
题目链接:通配符匹配题目描述:给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:原创 2020-07-05 20:31:43 · 433 阅读 · 0 评论 -
718. 最长重复子数组
题目链接:最长重复子数组题目描述:给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释:长度最长的公共子数组是 [3, 2, 1]。题目分析:这道题和两个字符串的最长公共子序列类似,不同之处在于子数组是连续的,那么只需要改变一下递推公式即可,要求连续,因此在判断相同时累加,否则就直接赋值0(不同于最长公共子序列的取前面序列的最大值),这样才能保证连续性假设两个数组分别为:[1原创 2020-07-01 16:33:12 · 132 阅读 · 0 评论 -
leetcode面试题46把数字翻译成字符串
题目链接:数字翻译成字符串题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”题目分析:和之前的打家劫舍有些相似。由于题目最大数字为25,是一个两位数,那么原创 2020-06-09 14:36:12 · 193 阅读 · 0 评论 -
dp算法小试
http://blog.csdn.net/u013445530/article/details/45645307package aaa;import java.util.*;public class Main { static Scanner in = new Scanner(System.in); public static void main(Strin原创 2020-06-05 00:57:19 · 145 阅读 · 0 评论 -
发工资咯:)
题目描述:作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2原创 2017-07-29 23:19:04 · 497 阅读 · 0 评论 -
C-1
Have you ever heard the story of Blue.Mary, the great civil engineer? Unlike Mr. Wolowitz, Dr. Blue.Mary has accomplished many great projects, one of which is the Guanghua Building. The public opi原创 2017-09-07 15:34:01 · 304 阅读 · 0 评论 -
完美字符串
约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。 约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。Input输入一个字符串S(S的长度 Output由你将原创 2018-01-25 23:18:43 · 729 阅读 · 0 评论 -
leetcode 198打家劫舍
leetcode 198打家劫舍题目链接:打家劫舍题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高原创 2020-05-31 19:38:41 · 123 阅读 · 0 评论 -
最长公共子序列
最长公共子序列Description给定两个字符串,返回两个字符串的最长公共子序列(不是最长公共子字符串),可能是多个。Input输入第一行为用例个数, 每个测试用例输入为两行,一行一个字符串Output如果没有公共子序列,不输出,如果有多个则分为多行,按字典序排序。Sample Input 111A2BD3G4H56JK23EFG4I5J6...原创 2019-10-31 14:22:30 · 139 阅读 · 0 评论 -
最少添加几个成为回文字符串--nyoj36
描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0<N<100)接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每行输出所...原创 2018-09-16 23:33:41 · 2822 阅读 · 0 评论 -
滑雪--记忆化搜索
题目信息:Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 1...原创 2018-03-24 19:28:14 · 248 阅读 · 0 评论 -
dp小试
题目一:将一个由N行数字组成的三角形,如图所以,设计一个算法,计算出三角形的由顶至底的一条路径,使该路径经过的数字总和最大。则可以得到状态转移方程:f[i][j] = max(f[i+1][j], f[i+1][j+1]) + map[i][j]import java.util.*;public class Main { static Scanner in =原创 2017-09-19 21:20:45 · 507 阅读 · 0 评论 -
放苹果 --动态规划、递归
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8分析:设f(m,n)为m个苹果,n个盘子的原创 2017-10-21 22:36:44 · 454 阅读 · 0 评论 -
饭卡 --背包问题dp
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。 某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。 Input多组数据。对于每组数据: 第一行为原创 2017-12-01 19:09:19 · 362 阅读 · 0 评论 -
Cash Machine --多重背包
A Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. The machine uses exactly N distinct bill denominations, say Dk, k原创 2017-12-01 20:49:22 · 320 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping! --简单dp
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now. The原创 2017-11-23 20:37:07 · 351 阅读 · 0 评论 -
Longest Ordered Subsequence--dp水题
A numeric sequence of ai is ordered if a1 a2 aN. Let the subsequence of the given numeric sequence ( a1, a2, ..., aN) be any sequence ( ai1, ai2, ..., aiK), where 1 i1 i2 iK N. For example, sequen原创 2017-11-26 12:22:19 · 428 阅读 · 0 评论 -
L - 最大子段和
N个整数组成的序列a11,a22,a33,…,ann, 求该序列如aii+ai+1i+1+…+ajj的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列的长度N(2 第2 - N + 1行:N个整数(-10^9 ii <= 10^9)Output输出最大子段和原创 2017-11-26 13:29:03 · 364 阅读 · 0 评论 -
0-1背包问题从复杂到简单的优化历程
0-1背包是动态规划里面一个典型的案例,大致要求就是给你一个容量为M的背包,然后给你N个价值不同的物品,让你在不超过背包容量的前提之下使得装入背包的物品的总价值最大。物品只可以装入一次,这也是0-1背包的问题所在,每个物品只有两个状态,装入或者不装入,即0和1 两种状态。我们简单来分析一下这个问题,其实把子问题抽象出来就是,在装入第i个物品时,如果该物品不被装入,那么此时背包的总价值就是前i-1个原创 2017-11-27 22:08:06 · 967 阅读 · 0 评论 -
矩阵取数问题 --简单dp
一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。 例如:3 * 3的方格。 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:11。 Input第1行:N,N为矩阵的大小。(2 第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 ii Ou原创 2018-01-25 20:32:39 · 382 阅读 · 0 评论 -
I love sneakers! --分组背包
After months of hard working, Iserlohn finally wins awesome amount of scholarship. As a great zealot of sneakers, he decides to spend all his money on them in a sneaker store.There are sever原创 2018-02-04 22:26:46 · 296 阅读 · 0 评论 -
小猴吃水果
•有一个小猴子,饲养员要喂她吃水果,现在有3种水果, 如果长时间吃一种水果小猴子很容易吃吐, 所以,饲养员要保证每种水果不能连续超过d1,d2,d3天 给你每种食物初始的份数, 每天吃一份,问吃完所有食物有多少种不同的组合呢?•思路:记忆化搜索,dp[num1][num2][num3][pre][con],num1num2 num3表示三种水果剩余数,pre表示上一个放的•是哪个水果,con表示上...原创 2018-03-10 10:47:10 · 555 阅读 · 0 评论 -
包子凑数--完全背包
标题:包子凑数小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然...原创 2018-03-22 17:56:22 · 1205 阅读 · 0 评论 -
蓝桥杯-地宫取宝
题目描述:X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面...原创 2018-03-24 16:46:28 · 543 阅读 · 0 评论 -
小明的花店---简单DP
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号从小到大的顺序依次摆列。 试编程计算,一共有多少种不同的摆花方案。输入 第一行包含两个正整数n和m,中间用一个空格隔开原创 2017-10-21 13:28:37 · 2433 阅读 · 0 评论