题目链接:https://leetcode-cn.com/problems/counting-bits/ 本题使用动态规划 根据二进制的规则,满二进一,因此,如果一个数的是二的次方数,那么该数的二进制中,1的个数一定为1 根据位运算的相关规则,在程序中将一个数左移一位,相当于将该数乘以2,由于左移一 ...
分类:
其他好文 时间:
2021-03-03 12:36:19
阅读次数:
0
动态规划一般都是求最值问题,或者该问题的本质是求最值。 动态规划的本质是穷举,根据dp本身的定义写出状态转移方程,各个状态会有自己的范围,那就从中选出最大值,选择的方法是都试一遍找最大值。 动态规划思考与书写的流程: 1.根据题目想明白 状态 & 选择 & 结果 结果往往指的是题目要求的东西,比如说 ...
分类:
其他好文 时间:
2021-03-02 11:46:25
阅读次数:
0
62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m = 3, n = 7 输出:28 示 ...
分类:
其他好文 时间:
2021-02-25 11:40:05
阅读次数:
0
思路: 1.动态规划 首先想到的肯定是暴力解法,将所有情况列举出来再计算,时间复杂度O(2^n),很明显这种做法会超时。 如何改进暴力解法呢?在计算时会发现暴力解法实际上是将求解F(n)的问题分解成求解F(n-1)的问题。 由此可以使用动态规划的解法。 定义一个数组dp,其中 dp[i] 表示的是长 ...
分类:
其他好文 时间:
2021-02-22 12:35:23
阅读次数:
0
个人对dp的理解: 记忆化,先求出小问题的最优解,然后状态转移逐步求出原问题的解。递推是神,des。 使用dp前提: 能拆分为子问题并能求出状态转移方程,原问题是最优解的同时子问题也都是最优解。 无后效性,也就是一个状态的值只与当前有关,此刻求出多少就是多少。且不会因为达到最优地方式的不同而影响未来 ...
分类:
其他好文 时间:
2021-02-10 13:18:35
阅读次数:
0
647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:"abc" 输出:3 解释:三个回文子串: "a", "b", "c" 示例 2: 输入:"aaa" 输出:6 解释: ...
分类:
其他好文 时间:
2021-02-01 12:41:25
阅读次数:
0
5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s = "a" 输出:"a" 示例 4: 输入:s = ...
分类:
其他好文 时间:
2021-02-01 12:34:28
阅读次数:
0
分析 我们看到这道题,很容易想到一个广为人知的算法DFS!! 但是我们悄悄看一眼数据范围,脑子里思考一下,会超时 那我们怎么办呢? 我们来看一看到达一个格子的方案是从哪里来的? 发现一个格子的到达的方案总数是它上面的格子的方案总数加上左边的格子的方案总数 这不就是一个动态规划的简单题吗? 我们定义$ ...
分类:
其他好文 时间:
2021-01-27 13:38:53
阅读次数:
0
Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 求解Levenshtein距离可以依靠动态规划。例如将源字符串'yabd'转换成目标字符串'abc',该问题的求解步骤 ...
分类:
其他好文 时间:
2021-01-22 12:03:07
阅读次数:
0
剑指 Offer 42. 连续子数组的最大和 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和 ...
分类:
编程语言 时间:
2021-01-19 12:21:08
阅读次数:
0