● 动态规划
1
wdt_
即使上线也匆忙,新版本,愁断肠,orz...
展开
-
【动归】B007_打家劫舍 II(dp)
一、题目描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 输入: [1,2,3,1] 输出: 4 解释: ...原创 2020-03-29 23:35:36 · 152 阅读 · 0 评论 -
【动归】C006_面试题 17.16. 按摩师(dp)
一、题目描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。 输入: [2,7,9,3,1] 输出: 12 解释: 选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2 + 9 + 1 = 12。 二、题解 方法一:dp 和...原创 2020-03-24 09:31:51 · 188 阅读 · 0 评论 -
【动归】B006_打家劫舍 I(dp)
一、题目描述 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacen...原创 2020-03-17 23:22:15 · 131 阅读 · 0 评论 -
【动归】c_lc_买股票的最佳时期 I(二维dp / 空间压缩)
一、题目描述 Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the...原创 2020-03-16 18:04:01 · 148 阅读 · 0 评论 -
【动归】A021_俄罗斯套娃信封问题(dp | 二分(待办))
一、题目描述 You have a number of envelopes with widths and heights given as a pair of integers (w, h). One envelope can fit into another if and only if both the width and height of one envelope is greate...原创 2020-03-14 10:42:15 · 162 阅读 · 0 评论 -
【动归】最长×××解法模板
子序列问题可能会比子串、子数组困难一带你,因为前者是不连续,而后两者是连续的,所以这里总结一下两种序列的不同做法,以及简单区别。相关问题只需要往这两种思路上想,十拿九稳。 一、最长×××子序列(非连续) 复杂度 时间复杂度:O(n2)O(n^2)O(n2),因为涉及到穷举状态。 空间复杂度:O(n)O(n)O(n),一般涉及到 递增/递减/最长 这些只需一维 dp 即可。 代码模板 int[]...原创 2020-03-07 21:25:24 · 104 阅读 · 0 评论 -
【线程 dp】B003_LC_最长重复子数组(二维)
一、题目描述 Given two integer arrays A and B, return the maximum length of an subarray that appears in both arrays. Input: A: [1,2,3,2,1] B: [3,2,1,4,7] Output: 3 Explanation: The repeated subarray with ...原创 2020-03-06 20:19:19 · 163 阅读 · 0 评论 -
【动归】B017_LC_乘积最大子序列(分类讨论)
一、题目描述 Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product. Input: [2,3,-2,4] Output: 6 Explanation: [2,3] has th...原创 2020-03-06 16:06:20 · 142 阅读 · 0 评论 -
【动归】C015_判断子序列(双指针 | dp | 贪心)
一、题目描述 Given a string s and a string t, check if s is subsequence of t. You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000)...原创 2020-03-05 22:58:58 · 201 阅读 · 0 评论 -
【动归】C013_LC_最长连续上升子序列(双指针 | dp)
一、题目描述 Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray). Input: [1,3,5,4,7] Output: 3 Explanation: The longest continuous increasing subseq...原创 2020-03-05 16:22:08 · 282 阅读 · 0 评论 -
【动归】B010_Coin LCCI(递归 | 记忆化搜索 | dp | 空间压缩)
一、题目描述 Given an infinite number of quarters (25 cents), dimes (10 cents), nickels (5 cents), and pennies (1 cent), write code to calculate the number of ways of representing n cents. (The result may...原创 2020-03-04 23:39:06 · 175 阅读 · 0 评论 -
【完全背包】B001_LC_零钱对换(暴搜 / 记忆化搜索 / dp)
一、题目描述 You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount ...原创 2020-03-04 00:06:14 · 278 阅读 · 0 评论 -
【动归】C000_斐波那契数(递归 | 记忆化递归 | dp)
一、题目描述 二、题解 方法一:递归 如果 N 等于 1 或等于 2,则返回 1。 否则,通过 Fn=Fn−1+Fn−2F_n =F_{n−1} +F_{n−2}Fn=Fn−1+Fn−2 调用自身求解问题。 public int fib(int N) { // if (N == 0) return 0; // if (N == 1) return 1; if (N =...原创 2020-02-28 22:13:14 · 209 阅读 · 0 评论 -
【动归】如何透彻理解动态规划?
1. 怎么理解动态规划 我记得 quora 上有一个回答是这么说的: 首先在一张纸上写下 1+1+1+1+1+1+1+1=? “它等于多少呢?” 我们会立即脱口而出,“等于 8!” 如果我们在左边添一个 +1,会等于多少呢?” 不用想,“等于 9!” “为什么你会计算得这么快呢?” “ 因为 8+1=9,我们没有重新计算 1+1+1+1+1+1+1+1+1 的值 8,再次计算时只需在 8 的基础...原创 2020-02-28 20:29:37 · 418 阅读 · 0 评论