Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Table of Contents generated with DocToc

Dynamic programming(dp)

  • 动态规划
递归问题 -> 重叠子问题&最优子结构 > 记忆化搜索(自顶向下解决问题)
                             > 动态规划(自下向上解决问题)
  • 五步曲
1 确定dp数组(dp table)以及下标的含义
2 确定递推公式
3 dp数组如何初始化
4 确定遍历顺序
5 举例推导dp数组
  • 遍历顺序的重要性

1、01 背包问题中,一维数组需要将物品放到外层,背包容量放里层,且容量需要从大到小,才不会进行重复计算

2、完全背包问题中,计算排列和组合的循环里外层是不同的

组合

func change(amount int, coins []int) int {
	res := make([]int, amount+1)
	// res[j] amount = j 有多少种方式
	res[0] = 1
	for i := 0; i < len(coins); i++ { // 物品在外层
		for j := coins[i]; j <= amount; j++ { // 容量在里层
			res[j] += res[j-coins[i]]
		}
		//log.Println(res)
	}

	return res[amount]
}

排列

func combinationSum4(nums []int, target int) int {
	res := make([]int, target+1)
	res[0] = 1
	for j := 0; j <= target; j++ { // 背包容量在外层
		for i := 0; i < len(nums); i++ { // 物品在里层
			if j-nums[i] >= 0 {
				res[j] += res[j-nums[i]]
			}
		}
		//log.Println(res)
	}

	return res[target]
}
  • 做题记录
最近提交时间 题目 题目难度 提交次数
5 小时前 #516 最长回文子序列 中等 1 次
6 小时前 #647 回文子串 中等 1 次
6 小时前 #72 编辑距离 困难 1 次
7 小时前 #583 两个字符串的删除操作 中等 3 次
7 小时前 #115 不同的子序列 困难 1 次
8 小时前 #392 判断子序列 简单 2 次
9 小时前 #53 最大子数组和 简单 8 次
9 小时前 #1035 不相交的线 中等 2 次
10 小时前 #1143 最长公共子序列 中等 2 次
1 天前 #718 最长重复子数组 中等 1 次
1 天前 #674 最长连续递增序列 简单 2 次
1 天前 #300 最长递增子序列 中等 4 次
2 天前 #714 买卖股票的最佳时机含手续费 中等 2 次
2 天前 #309 最佳买卖股票时机含冷冻期 中等 2 次
2 天前 #188 买卖股票的最佳时机 IV 困难 3 次
2 天前 #123 买卖股票的最佳时机 III 困难 2 次
2 天前 #122 买卖股票的最佳时机 II 中等 6 次
2 天前 #121 买卖股票的最佳时机 简单 2 次
3 天前 #337 打家劫舍 III 中等 4 次
3 天前 #213 打家劫舍 II 中等 2 次
3 天前 #198 打家劫舍 中等 2 次
3 天前 #139 单词拆分 中等 1 次
4 天前 #279 完全平方数 中等 2 次
4 天前 #322 零钱兑换 中等 3 次
4 天前 #70 爬楼梯 简单 5 次
4 天前 #377 组合总和 Ⅳ 中等 1 次
5 天前 #518 零钱兑换 II 中等 1 次
5 天前 #474 一和零 中等 1 次
5 天前 #494 目标和 中等 1 次
6 天前 #1049 最后一块石头的重量 II 中等 3 次
6 天前 #416 分割等和子集 中等 3 次
7 天前 #96 不同的二叉搜索树 中等 1 次
7 天前 #343 整数拆分 中等 5 次
7 天前 #62 不同路径 中等 2 次
7 天前 #63 不同路径 II 中等 3 次
7 天前 #746 使用最小花费爬楼梯 简单 2 次
8 天前 #509 斐波那契数 简单 2 次