#1:在数组中找两个数,使其和为target 链接:https://leetcode-cn.com/problems/two-sum/ 暴力就是n^2,可以用map来做,这里介绍一下map.count(tmp)函数,是搜索key的值,map里存在值为tmp的key就返回1,否则是0 #122:给定一 ...
分类:
其他好文 时间:
2020-11-08 17:59:16
阅读次数:
25
问题描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 解法一(动态规划): 用dp[i]表示第i位结尾 ...
分类:
其他好文 时间:
2020-11-08 17:06:45
阅读次数:
22
###题目 509. Fibonacci Number ###解题方法 当成动态规划题来做,设置一个数组存储每轮计算后的fib数,从2开始遍历到N+1,然后返回最后一位即可。 ###代码 class Solution: def fib(self, N: int) -> int: if not N: ...
分类:
其他好文 时间:
2020-11-08 16:42:43
阅读次数:
18
\(A.\) 首先有个朴素的动态规划思路 , 记 \(f_{i , j}\) 表示前 \(i\) 个位置 , 最后一个位置的颜色是 \(j\) 的方案数。 转移要用到容斥原理 , 用总方案数减去 \(j\) 连续出现 \(a_{j} + 1\) 次的方案数。 记 \(g_{i} = \sum{f_{ ...
分类:
其他好文 时间:
2020-11-07 17:32:03
阅读次数:
20
根据题目中规定路径都是单向的,且从编号小的地窖通向编号大的地窖,可以确定本题可以使用动态规划解决。首先思考求解时最后一步会做什么——选择最后一个地窖,挖走其中的地雷。依据此来推出状态转移方程设f[i]表示以i地窖为结束点能挖到的最大地雷数。那么可以写出f[i]=max(f[j]+a[i])条件是j小 ...
分类:
编程语言 时间:
2020-11-02 10:38:23
阅读次数:
34
最近面试遇到一道题,一个人的精力是V,有N款游戏,每款游戏的所消耗的经历为对应的C[i],获得的满足感为M[i]。求玩哪几款游戏获得的满足感最高。当时一下没想出来,后来一想,这不就是背包问题吗? 所以这里整理一下背包问题的算法。 问题描述:一个背包的总容量为V,现在有N类物品,第i类物品的重量为we ...
分类:
编程语言 时间:
2020-10-26 10:42:35
阅读次数:
24
因为很多算法思想都基于递归,无论是DFS、树的遍历、分治算法、动态规划等都是递归思想的应用。学会了用递归来解决问题的这种思维方式,再去学习其他的算法思想,无疑是事半功倍的。 递归的本质 无可奈何花落去,似曾相识燕归来。 递归,去的过程叫“递” ,回来的过程叫“归”。 探究递归的本质要从计算机语言的本 ...
分类:
其他好文 时间:
2020-09-18 17:18:38
阅读次数:
36
1:01背包问题只有两种两种状态:放进背包或者不放进背包。 2:01背包的核心:状态转换方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-Wi](i从1到N循环,j从0到V循环)//表示前i件物品,放入容量为j的背包所能获得的最大收益 //其中dp[i-1][j]表示第i件没 ...
分类:
其他好文 时间:
2020-09-18 00:50:56
阅读次数:
25
题目大意:给定一个H*W的棋盘,棋盘上只有N个格子是黑色的,其他格子都是白色的。在棋盘左上角有一个卒,每一步可以向右或者向下移动一格,并且不能移动到黑色格子中。求这个卒从左上角移动到右下角,一共有多少种可能的路线。$h,w\leq 10^5,k\leq 2000$。 看到数据范围可以看出此题的时间复 ...
分类:
其他好文 时间:
2020-09-18 00:04:18
阅读次数:
31
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 方法一:动态规划 对于一个子串而言,如果它是回文串,并且长度大于2,那么将它首尾的两个字母去除之后,它仍然是个回文串 用P(i, j)表示字符串s的第i到j个字母组成的串(s[i:j])是否为回文串 P(i, ...
分类:
其他好文 时间:
2020-09-17 16:29:15
阅读次数:
24