题目大意 给定n个不同的整数,求将它们分成两个集合X,Y,并且X集合中任意两个数的差 =A,Y集合中任意两个数的差 =B的方案数。 样例输入 5 3 7 1 3 6 9 12 样例输出 5 解析 不妨设$A B$,那么考虑如何动态规划。设$f[i]$表示第一个集合最后选择的数是i时的方案数。只用枚举 ...
分类:
其他好文 时间:
2019-11-18 00:03:49
阅读次数:
61
一、记忆化搜索 斐波那契算法 1.递归代码(时间复杂度O(2^n)): int f(int n){ if(n == 1 || n == 2){ return 1; } return f(n-1) + f(n-2); } 2.递归加记忆化 public class Solution{ int[] re ...
分类:
其他好文 时间:
2019-11-17 12:52:18
阅读次数:
72
增量幻境 时间限制: 1 Sec 内存限制: 128 MB 题目描述 众所周知,小葱同学擅长计算,尤其擅长计算组合数,但这个题和组合数没什么关系。 小葱同学最近醉心于动态规划的研究,他苦学百年,已经牢牢掌握了最长上升子序列的知识。小葱对于这种单调不减的序列非常着迷,于是他灵机一动,挥笔写下了一个数x ...
分类:
其他好文 时间:
2019-11-17 12:41:35
阅读次数:
68
思路:思路一: 利用两个指针进行遍历。在代码里解释.时间复杂度为:O(mn)O(mn)O(mn)思路二: 动态规划dp[i][j]表示s到i位置,p到j位置是否匹配!初始化: dp[0][0]:什么都没有,所以为true 第一行dp[0][j],换句话说,s为空,与p匹配,所以只要p开始为*才为tr ...
分类:
其他好文 时间:
2019-11-17 10:43:31
阅读次数:
58
"题目描述" 方法一: 直接判断 复杂度 O(n) 考虑一下为什么i与j有时均更新, 有时只更新i 方法二: 动态规划 复杂度 O(nm) 动态规划思想: 将待解决问题分成若干个子问题, 先解决子问题, 然后再从子问题得到原问题;这个时候容易想到分治法, 但是与分治法不同的是, 动态规划分解的子问题 ...
分类:
其他好文 时间:
2019-11-16 19:35:35
阅读次数:
75
最近在刷leecode题,记录一下刷题过程,话不多说,上题 198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整 ...
分类:
其他好文 时间:
2019-11-16 18:08:22
阅读次数:
74
1 常用的数据结构 2 高级数据结构 3 排序 4 查找 5 深度与广度优先搜索 6 动态规划 7 设计模式 数据结构和算法 1 常用的数据结构 栈 数组、字符串 队列 链表 树 双端队列 2 高级数据结构 优先队列 图 前缀树 线段树 树状数组 3 排序 基本排序 冒泡排序 选择排序 插入排序 希 ...
分类:
编程语言 时间:
2019-11-16 10:48:43
阅读次数:
92
描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 ...
分类:
其他好文 时间:
2019-11-15 18:37:30
阅读次数:
70
基本概念 定义 动态规划既是一种数学优化的方法,同时也是编程的方法。 从数学的角度看,动态规划要解决的都是问题的最优解。而一个问题的最优解是由它的各个子问题的最优解决定的。(最优子结构) 从编程的角度看,动态规划可以借助编程的技巧去保证每个重叠的子问题只会被求解一次。(重叠子问题) 难点 应当采用什 ...
分类:
其他好文 时间:
2019-11-15 18:20:11
阅读次数:
52
导言 动态规划问题一直是算法面试当中的重点和难点,并且动态规划这种通过空间换取时间的算法思想在实际的工作中也会被频繁用到,这篇文章的目的主要是解释清楚 什么是动态规划,还有就是面对一道动态规划问题,一般的 思考步骤 以及其中的注意事项等等,最后通过几道题目将理论和实践结合。 什么是动态规划 如果你还 ...
分类:
其他好文 时间:
2019-11-14 10:13:42
阅读次数:
83