找到约 1788 条结果
  • 动态规划(fibonacci)
    动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会...
    2019-12-25
  • 动态规划问题(1)——斐波那契数列
    前段时间一直写了几个算法题目,发现有个很牛逼的算法,动态规划,虽然有的解题思路和动态规划很像,但是当时不知道其中的原理和一些通用性,接下来的几天,通过一些栗子一点一点揭开动态规划那神秘的面霜,我也是现学现卖的,如果有那里写错的欢迎给我留言指正。
    2016-12-27
    4
  • 强化学习算法
    在 强化学习基础 文章中我们提到动态规划方法。动态规划作为一种model-based的方法,使用场景具有非常的局限性。本文将从实际应用角度出发,介绍并对比几种model-free的方法。
    2020-10-25
  • 最大连续子列之和
    以前在数据结构的书上看过这么一种解法 {代码...} 但这种解法被我算法课的老师喷了,说这样看不出算法的思路。 而最大连续子列之和是dp(动态规划)问题,应该用先有动态规划的递推式再写程序。 但事实上标准的动态规划解法也是有一点tricky的,我们递推的实际上是 max_endwith[i]: 存A[0...i]中以A[i]结尾的最大连续子...
    2014-09-28
  • Distinct Subsequences@LeetCode
    动态规划题。先用二维动态规划的思路解释下:设match是动态规划表,其中match[i][j]表示S.substring(0, i)对T.substring(0, j)有几种组成方式,递推公式为:
    2015-04-19
  • 朝花夕拾 - 算法
    关键词:滑动窗口、广度优先、深度优先、二叉树、动态规划
    2021-01-25
  • 动态规划,斐波那契数列和暴力递归
    算法技巧就那⼏个套路,如果你⼼⾥有数,就会轻松很多,本⽂就来扒⼀扒 动态规划的裤⼦,形成⼀套解决这类问题的思维框架。废话不多说了,上⼲ 货。
    2021-03-20
  • LeetCode 120. 三角形最小路径和 | Python
    120. 三角形最小路径和 题目来源:力扣(LeetCode)[链接] 题目 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。 例如,给定三角形: {代码...} 自顶向下的最小路径和为 11(即,2 + ...
    2020-07-14
  • 「动态规划」LeetCode 509(斐波那契数列)
    Leetcode 509 题抱歉拖更了 2 天,嘿嘿。这周我们基于动态规划基本思想,做一道 Leetcode 的简单题。题干简述Leetcode 509 题就是计算斐波那契数列。公式:F(n) = F(n - 1) + F(n - 2)给定:n要求:计算F(n)解题思路为什么说计算斐波那契数列是动态规划里面最简单的一道题呢?是因为题目直接给出了状态转移方程F(n) = F(...
    2023-03-15
  • 动态规划法(九)想要更多例子?
    本文将会介绍三个用动态规划法解决的例子,分别是: 楼梯台阶问题 二项式系数求解 最大乘积子数组问题 楼梯台阶问题 一个n阶的楼梯,一个婴儿每次爬一阶或两阶,试问一共有多少种办法爬完楼梯。 设f(n)为该问题的解,考虑最后一次的爬法,若最后一次爬一阶,则前面n-1阶楼梯有f(n-1)种办法,若最后一次爬两阶,则前面n-2...
    2018-06-06
  • 动态规划就是1+1
    Dynamic programming is both a mathematical optimization method and a computer programming method. The method was developed by Richard Bellman in the 1950s and has found applications in numerous fields, from aerospace engineering to economics.In both contexts it refers to simplifying a complicated...
    2020-08-12
  • 如何运用贪心思想玩跳跃游戏
    读完本文,你可以去力扣拿下如下题目:55.跳跃游戏45.跳跃游戏 II-----------经常有读者在后台问,动态规划和贪心算法到底有啥关系。我们之前的文章 贪心算法之区间调度问题 就说过一个常见的时间区间调度的贪心算法问题。说白了,贪心算法可以理解为一种特殊的动态规划问题,拥有一些更特殊的性质,可以进一步降低动态...
    2020-12-10
  • 动态规划法(一)从斐波那契数列谈起
    动态规划(Dynamic Programming)与分治方法相似,都是通过组合子问题的解来求解原问题。不同的是,分治方法通常将问题划分为互不相交的子问题,递归地求解子问题,再讲它们的解组合起来,求出原问题的解。而动态规划应用于子问题重叠的情况,即不用的子问题具有公共的子子问题。在这种情况下,如果采用分治算法,则分治...
    2018-05-28
  • 2021-02-23:给定一个正数n,求n的裂开方法数。规定:后面的数不能比前面的数小
    2021-02-23:给定一个正数n,求n的裂开方法数。规定:后面的数不能比前面的数小 。比如4的裂开方法有: 1+1+1+1、1+1+2、1+3、2+2、4,5种,所以返回5。
    2021-02-23
  • 「数据结构与算法」动态规划学习笔记:简介
    动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。
    2021-11-15
  • Leetcode专题[数组]-70-爬楼梯
    leetcode链接:[链接]解题思路:动态规划 {代码...}
    2023-09-03
  • 14- I. 剪绳子,dp,贪心(找规律)
    总体思路就是:从3的最大结果,计算到n的最大结果。不同分割方式用递归完成i表示当前计算的绳子长度,j表示分割的长度,i-j表示剩下的长度,每计算出一个结果都需要跟当前 i 对应的最大结果、分割一次的结果、剩下长度的最优结果进行对比。即:
    2021-05-24
  • 力扣——第N个泰波那契数列的值
    泰波那契序列 Tn 定义如下: T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n = 4 输出:4 解释: T_3 = 0 + 1 + 1 = 2 T_4 = 1 + 1 + 2 = 4 示例 2: 输入:n = 25 输出:1389537 提示: 0 <= n <= 37 答案保证是一个...
    2020-09-27
  • 【Java算法系列】动态规划算法(二)
    【写在前面】“Java算法系列”目录如下(更新ing):数据结构相关算法八大排序算法:冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、基数排序、堆排序四大查找算法:线性查找、二分查找、插值查找、斐波那契查找九大常用算法:分治算法、动态规划算法、KMP算法、贪心算法、Prim算法、Kruskal算法、Dijkstra...
    2021-11-15
  • 【算法】DP之最长公共子序列
    最长公共子序列1.问题描述$对于母串X=<x1,x2,⋯,xm>, Y=<y1,y2,⋯,yn>,求最长公共子序列$2.求解算法2.1 暴力破解$假设m<n ,对于母串X,可以找到2^m-1个子序列,然后依次在母串Y中匹配,算法的时间复杂度会达到指数级O(n * 2^m)$2.2 动态规划最优子结构:$假设Z=<z1,z2,⋯,zk>是XX与YY的LCS, 我们观...
    2021-03-10