动态规划-理论基础
动态规划是什么 每一个状态都是由前一个状态推导而来。区别于贪心算法,贪心没有状态推导,而是从局部取最优。 学习路线 解题步骤 1 、确定 dp 数组(table)已经下标含义 2 、确认递推公式 3 、确定初始值和边界条件 4 、确定遍历顺序 5 、举例推导 dp 数组 不用死记以上步骤,多练几道题,自然有所体会 参考 动态规划理论基础
动态规划是什么 每一个状态都是由前一个状态推导而来。区别于贪心算法,贪心没有状态推导,而是从局部取最优。 学习路线 解题步骤 1 、确定 dp 数组(table)已经下标含义 2 、确认递推公式 3 、确定初始值和边界条件 4 、确定遍历顺序 5 、举例推导 dp 数组 不用死记以上步骤,多练几道题,自然有所体会 参考 动态规划理论基础
子序列问题思路总结 思路 1:一维 dp 数组 func dp(nums []int) int { // dp[i]表示以nums[i]结尾的最长递增子序列的长度, 包括nums[i] // note: 不是前i个元素的最长递增子序列的长度 dp := make([]int, len(nums)) for i := 1; i <len(nums); i++ { for ...
方法论:https://labuladong.online/algo/dynamic-programming/stock-problem-summary/ 买卖股票的最佳时机-121 暴力方式 假设第 i(i>1) 天就卖出股票,则可以遍历 i 天之前的价格,找到最大的收益。 func maxProfit(prices []int) int { if len(prices) &...
0-1背包问题 题目描述 一共有N件物品,第i(i从1开始)件物品的体积为w[i],价值为v[i]。在总体积不超过背包上限C的情况下,能够装入背包的最大价值是多少? 如: 物品1: weight=7, value=42 物品2: weight=3, value=12 物品3: weight=4, value=40 物品4: weight=5, value=25 背包...
打家劫舍-198 dp[i] 表示第 i 间房间的最大偷窃金额 对于一个房间 i,有偷窃和不偷窃两种方式: 1、偷窃:那么可以偷窃第 i-2 间,不可以偷窃第 i-1间,偷窃总金额为 $dp[i-2] + nums[i]$ 2、不偷窃:那么不可以偷窃第 i-2 间,可以偷窃第 i-1间,偷窃总金额为 $dp[i-1]$ 临界条件: 1、第1间房间; 最大偷窃金额为nums[0]...
爬楼梯-70 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 ...
斐波那契数-509 题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 示例 1: 输入:n = 2 输出:1 解释:F(2) ...
https://soulmachine.gitbooks.io/system-design/content/cn/
MCP入门 https://modelcontextprotocol.io/introduction
概述 fork:https://www.cnblogs.com/reim/p/17377883.html Redis 是一个开源的高性能键值数据库,它支持多种数据类型,可以满足不同的业务需求。本文将介绍 Redis 的10种数据类型,分别是 string(字符串) hash(哈希) list(列表) set(集合) zset(有序集合) stream(流) ...