找到约 1793 条结果
  • 完美平方
    思路: 采用动态规划的思想:一个数x可以表示为一个任意数$a$加上一个平方数$b*b$,也就是$x=a+b*b$;$dp[a]$就是和得到$a$需要的最少平方数;$dp[b*b]$的值是$1$$。
    2018-02-03
  • 【1】动态规划
    一直以为动态规划是一种具体算法。其实动态规划是一种思想。“记住求过的解来节省时间”。一个典型的例子是斐波那契数列, {代码...} 其中的递归会将相同的数字计算多次,造成程序的低效。 {代码...} 另外一个是LeetCode 198题,打家劫舍 {代码...} 使用一个数组来保存中间数据,最后得到答案。
    2020-08-24
  • 【Leetcode】120.三角形最小路径和
    题目 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: {代码...} 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 说明: 如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。 题解 这道题目和之前A过的杨辉...
    2019-05-12
  • [Golang] 《算法导论》动态规划(Dynamic Programming)理解 (一)
    动态规划有点像分治法,都是通过合并原问题的子问题的解来得到原问题的解。不同的是分治法将原问题划分为不相交的子问题,递归地解决子问题,然后组合它们的解来得到原问题的解。而动态规划需要原问题划分为有重叠的子问题,即其子问题又需要共同的子子问题。
    2022-04-21
  • GPT4 解 Leetcode 题目:最大连续湍流子序列和
    在探索算法的世界中,我们经常会遇到一些挑战,其中动态规划无疑是其中的一大难题。然而,你可能会惊讶地发现,OpenAI 的 ChatGPT 对于动态规划的理解和应用,往往能超越许多接受过专业算法训练的人。它不仅能迅速解决中等难度的问题,还能不断优化解决方案,展现出强大的问题解决能力。
    2023-06-10
  • 动态规划算法问题(经典找零案例)
    问题: 给定数组arr,arr中的所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求换钱有多少种方法。
    2021-02-25
  • 算法入门之动态规划
    动态规划一般用于求最值问题,核心原理就是穷举,把所有答案算出来,求个最值不是轻轻松松吗?不过动态规划比穷举好的地方在于,动态规划存储了计算出来的值,再后续处理重叠子问题时,直接从内存获取。这就要求了动态规划解决的问题必须要有最优子结构,这样当前问题的值就可以通过子问题的最优解计算得到。
    2021-05-31
  • 读者:西法,记忆化递归究竟怎么改成动态规划啊?
    title: tags: [算法, 动态规划]date: 2021-05-18categories:[动态规划]我在动态规划专题反复强调了先学习递归,再学习记忆化,最后再学动态规划。其中原因已经讲得很透了,相信大家已经明白了。如果不明白,强烈建议先看看那篇文章。尽管很多看了我文章的小伙伴知道了先去学记忆化递归,但是还是有一些粉丝问我:“记忆化...
    2021-05-18
  • LeetCode | 0509. Fibonacci Number斐波那契数【Python】
    The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,
    2020-03-27
  • 动态规划
    动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。 20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process) 的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题, 利用各阶段...
    2014-09-08
  • 动态规划
    前一篇我们仔细聊了聊递归,如果大伙都仔细敲了相关代码,没有收获那是不可能的。同时敏锐的伙伴可能也发现了,接下来我们要说啥了——动态规划,对,终于终于我们聊到动态规划了。
    2022-01-29
  • 动态规划设计:最长递增子序列
    也许有读者看了前文 动态规划详解,学会了动态规划的套路:找到了问题的「状态」,明确了 dp 数组/函数的含义,定义了 base case;但是不知道如何确定「选择」,也就是不到状态转移的关系,依然写不出动态规划解法,怎么办?
    2020-11-08
  • leetcode-139-Word Break
    题目简介: {代码...} 应用:思想应用,涉及到前后需要保持状态的匹配计算,要保留并利用中间状态。相似问题: 动态规划,利用前面的状态。 {代码...}
    2018-08-14
  • 2020-02-24:arr是面值数组,其中的值都是正数且没有重复。再给定一个正数aim。每个值都认为是一种面值
    福哥答案2020-02-24:自然智慧即可。1.递归。有代码。2.动态规划。dp是二维数组。有代码。代码用golang编写,代码如下: {代码...} 执行结果如下:左神java代码评论
    2021-02-24
  • 【golang】leetcode初级-最大子序和&打家劫舍
    什么是动态规划[链接]第一题 最大子序和题目信息解题思路一开始在思考的时候走错了方向直到看到这条评论得到了启发错误代码如下正确代码如下 {代码...} 第二题 打家劫舍题目信息解题思路同样为多决策问题,动态规划可以快速的解决代码 {代码...}
    2022-01-31
  • 【算法解析LeetCode by Javascript】213. 打家劫舍 II
    你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
    2019-03-05
  • 通过 HDU 2048 来初步理解动态规划
    dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems. 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题得以递推(或者说分治)的方式去解决。 对于动态规划,可能会产生一些误解,将重点放在如何递推的求解问题,但如何拆分...
    2019-11-08