
动态规划
动态规划
I am jack
go ahead
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leedcode第62题——不同路径(100%击败率,动态规划解法)
Leedcode第62题——不同路径(100%击败率,动态规划解法)话不多说先看算法效率:题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下原创 2020-08-15 00:28:16 · 233 阅读 · 0 评论 -
用动态规划解决查找问题
用动态规划解决查找问题文章目录用动态规划解决查找问题一.最优二叉查找树问题二.近似串匹配一.最优二叉查找树问题问题描述:二.近似串匹配原创 2020-06-19 08:44:56 · 884 阅读 · 1 评论 -
组合问题的DP妙用
组合问题的DP妙用本文将以几个例子来讲解。一般我们在使用dp时都是先证明最优性原理,本文的话就跳过这一部分了,因为这个证明一般比较简单1.最长子序列问题问题描述:给定一个序列,要求找出其中最长的子序列的长度;例子:输入:5 2 8 6 3 6 9 7输出:4解释:最长子序列为2 3 6 9或者2 3 6 7分析:我们这样来定义子问题设L(i)表示从a1到ai的最长子序列的长度,那么有①i=1或者没有比ai小的aj(j<i),L(i)=1②L(i)=max {L(j)+1}原创 2020-06-15 23:58:54 · 292 阅读 · 0 评论 -
图问题中动态规划的应用
图问题中动态规划的应用阅读本文前要求读者对每个问题的描述都有了解,这里只提供实现方法文章目录图问题中动态规划的应用一.多段图最短路径问题二.多源最短路径算法---Floyd算法三.TSP问题1.状态转移方程2.例子讲解一.多段图最短路径问题那么这里呢我们就不写输入了,数据存储到数组里面就可以了代码:import org.junit.Test;import java.util.ArrayList;import java.util.List;public class Main {原创 2020-06-06 16:29:08 · 902 阅读 · 0 评论 -
最大K乘积问题
最大K乘积问题算法步骤:f[i][j]:表示把前j个数字分割为i段的最大乘积值f[i][j]=max{f[i-1][i-1--->j-1};#include <iostream>#include<algorithm>using namespace std;//返回从left到right之间的十进制数int getNum(string num,int left,int right){ string s = ""; for(int i=left;i原创 2020-06-01 08:43:16 · 408 阅读 · 0 评论 -
数塔问题-DP解法
数塔问题-DP解法#include<iostream>#include <stdio.h>#include <stdlib.h>using namespace std;int DataTower(int n,int d[][5]);int main(){ int d[5][5]={{8},{12,15},{3,9,6},{8,10,5,12},{16,4,18,10,9}}; DataTower(5,d);}//算法的步骤:/*从第倒原创 2020-05-29 12:43:44 · 367 阅读 · 0 评论 -
Leedcode45----跳跃游戏2
Leedcode45----跳跃游戏2方案一:动规+逆向思维class Solution{ //逆向思维 public int jump(int[] nums) { int f[] = new int[nums.length]; f[nums.length-1] = 0; for(int i=nums.length-2;i>...原创 2020-05-08 00:30:29 · 136 阅读 · 0 评论 -
背包问题总结
背包问题总结学习资源九讲专题后序原创 2020-04-26 16:39:06 · 119 阅读 · 0 评论 -
动态规划-丑数
动态规划-丑数class Solution { public int nthUglyNumber(int n) { int a=0,b=0,c=0;//三个指针初始化 int num[] = new int[n]; num[0]=1;//动态规划初始化初值 for(int i=1;i<n;i++)//一步一步...原创 2020-04-20 18:04:37 · 164 阅读 · 0 评论 -
双子针算法总结
双子针算法总结1.题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。2.代码与图解 public class Test { p...原创 2020-03-12 23:29:30 · 936 阅读 · 0 评论