题目: 思路: 动态规划(其它方法同斐波那契数列) 初始状态: dp[0]=1,dp[1]=1 转移方程: dp[n] = dp[n 1] + dp[n 2],同斐波那契数列相同 代码: Python ...
分类:
其他好文 时间:
2020-05-18 18:50:17
阅读次数:
45
题目: 思路: 循环求余 (x + y) % p = (x % p + y % p) % p,避免超过Int32的取值范围,导致大数越界。 递归法存在大量的重复运算(比如计算n和n 1是都会计算n 2),会超时。 动态规划,利用dp数组。 因为第n项只和前两个元素有关,所以只记录前两个元素。 代码: ...
分类:
其他好文 时间:
2020-05-18 18:44:55
阅读次数:
53
动态规划01背包实现: 借鉴的这篇博文: https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html 题目:在背包容量为8的情况下,根据下图的数据动态规划得到最优解,实现右图所示的程序代码 最重要的就是寻找递推关系式: 定义V[i,j] ...
分类:
编程语言 时间:
2020-05-17 16:03:10
阅读次数:
59
给定一个无序的整数数组,找到其中最长上升子序列的长度 解题思路参考https://blog.csdn.net/lw_power/article/details/80758674 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长 ...
分类:
其他好文 时间:
2020-05-17 10:35:17
阅读次数:
72
2020-05-16 18:35:01 问题描述: 我们有一组排序的数字 D,它是 {'1','2','3','4','5','6','7','8','9'} 的非空子集。(请注意,'0' 不包括在内。) 现在,我们用这些数字进行组合写数字,想用多少次就用多少次。例如 D = {'1','3','5 ...
分类:
其他好文 时间:
2020-05-16 20:50:38
阅读次数:
79
注:本文为回顾,所以仅会记录本人认为的难点与分析 递推 联系&难度 个人认为,递推与动态规划实际是密不可分的,你说它简单,但到了做题时难以找到转移方程,你要是说它难,但它确确实实是最基本的东西了 例题 斐波那契数列 这是一道最基础的递推题,根据对数列的描述,不难发现,从第3项开始,我们都可以用这样一 ...
分类:
其他好文 时间:
2020-05-16 18:34:14
阅读次数:
59
/* * K-periodic Garland * 题意: * 给定长度为n的01字符串,每次操作可以改变一个字符的状态,问使得字符串中相邻1的距离为k的最小操作次数 * 题解: * DP。 * pre[i]记录前i项中1的个数。 * dp[i][0]为使得前i项都合法,第i位为0时的最小操作次数。 ...
分类:
其他好文 时间:
2020-05-16 17:10:20
阅读次数:
104
问题: S代表原字符串,P代表模式串,包含* (匹配0或者多个)和?(匹配一个) 思路:动态规划 dp[i][j] 代表 S的前i个字符和P的前j个字符是否匹配, 最后返回dp[s.length()][p.length()] p[j-1]==* 则 dp[i][j] = dp[i-1][j] || ...
分类:
其他好文 时间:
2020-05-15 20:34:58
阅读次数:
77
看到题目,一个变种的八皇后,在矩阵中寻找路径。 关于回溯的思路在博客: Burst Balloons(leetcode戳气球,困难)从指数级时间复杂度到多项式级时间复杂度的超详细优化思路(回溯到分治到动态规划 ) 中有非常详细的描述。 本题优化时间复杂度的关键在于剪枝,当越界、字符不匹配、路径已走过 ...
分类:
编程语言 时间:
2020-05-14 01:29:55
阅读次数:
70
[TOC] 背包问题(0 1背包问题) 假设你是个小偷,背着一个可装 4 磅东西的背包。 你可盗窃的商品有如下3件(摘自算法图解): 作为一名优秀的小偷,为了让盗窃的商品价值最高,该选择哪些商品呢? 很明显,小偷需要在满足背包容量要求下,选择价值总和最大的。 使用动态规划 先解决小背包(子背包)问题 ...
分类:
其他好文 时间:
2020-05-13 20:41:28
阅读次数:
74