动态规划
动态规划
低头看天,抬头走路
句句都是正确的废话,招招都是致命的空招。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode152. 乘积最大子数组
题目 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 思路 1.f(n)与f(n - 1)有关,且存在重复计算,考虑动态规划 2.这里主要比较f(n - 1)与包括第n个元素在内的子数组的乘积, 如果每次遍历相乘会超原创 2021-01-10 17:00:21 · 190 阅读 · 0 评论 -
leetcode95. 不同的二叉搜索树 II
题目 给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。 示例: 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2原创 2021-01-10 16:04:25 · 153 阅读 · 0 评论 -
leetcode96. 不同的二叉搜索树
题目 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2原创 2021-01-10 15:46:20 · 151 阅读 · 0 评论 -
leetcode70 爬楼梯
题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 ...原创 2019-07-09 22:50:27 · 203 阅读 · 0 评论 -
leetcode64. 最小路径和
题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 思路 直接修改原始数组 实现 class Solution { public: int minP...原创 2019-09-17 15:28:12 · 150 阅读 · 0 评论 -
剑指offer第9题:斐波纳西数列
输入:n 输出:f(n) 思路:由f(1),f(2)得到f(3);f(2),f(3)得到f(4),继而得到f(n)public class Fibonacii { //剑指offer第九题,Fibonacii数列 public long fibonacii(int n){ int[] result = {0,1}; if(n < 2){原创 2016-07-31 23:12:10 · 989 阅读 · 0 评论 -
背包算法
背包算法大致可以分为三类: 1.01背包:有n种物品与承重为m的背包。每种物品只有一件,每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。 f[i][j] = max(f[i-1][j],f[i-1][j-w[i] + w[i]) 要么放入i物品,要么不放入i物品 2.完全背包:有n种物品与承重为m的背包。每种物品有无限多件,每个物品都有对应的重量weigh...原创 2019-01-06 18:59:02 · 5651 阅读 · 0 评论
分享