会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
周公瑾55
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2024年8月30日
代码随想录day45 || 115 不同子序列, 583 两个字符串删除操作, 72 编辑距离
摘要: 115 不同子序列 func numDistinct(s string, t string) int { // 动态规划,思考一下判断连续和不连续的区别,如果相等都是左上角+1, 如果不等,连续情况就是直接等于左上角,不连续情况直接归零 // dp[i][j] 表示s[i] 中存在 t[j] 结尾的
阅读全文
posted @ 2024-08-30 11:27 周公瑾55
阅读(22)
评论(0)
推荐(0)
2024年8月29日
代码随想录day44 || 1143 最长公共子序列, 1035 不相交的线, 53 最大子序列和, 392 判断子序列
摘要: 1143 最长公共子序列 func longestCommonSubsequence(text1 string, text2 string) int { // 思路和判断最长公共数组一样 // dp[i][j] 表示以text1[i], text2[j]为结尾的最长公共子序列的长度 // if te
阅读全文
posted @ 2024-08-29 11:17 周公瑾55
阅读(17)
评论(0)
推荐(0)
2024年8月28日
代码随想录day43 || 300 最长递增子序列,674 最长连续递增子序列,718 最长重复子数组
摘要: 300 最长递增子序列 var path []int var res int func lengthOfLIS(nums []int) int { // 尝试回溯思路 if len(nums) == 1 { return 1 } path = []int{} res = 0 backtracking
阅读全文
posted @ 2024-08-28 11:35 周公瑾55
阅读(25)
评论(0)
推荐(0)
2024年8月27日
代码随想录day42 || 188 买卖最佳时机IV,309 买卖最佳时机含冷冻期,714 买卖最佳时机含手续费
摘要: 188 买卖最佳实际IV(k次机会交易) func maxProfit(k int, prices []int) int { // 此题相比买卖两次条件改为买卖k次,所以dp数组行树需要增加为k*2 + 1 // dp[i][j]表示 if j%2 == 1 第i天第j/3次持有股票获得的收益, j
阅读全文
posted @ 2024-08-27 10:43 周公瑾55
阅读(19)
评论(0)
推荐(0)
2024年8月26日
代码随想录day41 || 121 买卖股票最佳时机,122 买卖股票最佳时机||,123 买卖股票最佳时机|||
摘要: 121 买卖股票最佳时机 func maxProfit(prices []int) int { // dp五部曲 // 1 dp数组以及下标含义 dp[i][0] 表示第i天持有股票 dp[i][1] 表示第i天不持有 // 2 递推公式,dp[i][0] = max(dp[i-1][0], 0-p
阅读全文
posted @ 2024-08-26 11:04 周公瑾55
阅读(40)
评论(0)
推荐(0)
2024年8月24日
代码随想录day39 || 198 打家劫舍,213 打家劫舍||,337 打家劫舍|||
摘要: 198 打家劫舍 func rob(nums []int) int { // 思路,动态规划 // dp[i] 代表前下标为i能装的最大盗窃物品价值 // 递推 dp[i] = max(dp[i-1], dp[i-2]+v(i)) // dp[i-1] 代表不偷物品i, dp[i-2]+v(i) 代
阅读全文
posted @ 2024-08-24 11:12 周公瑾55
阅读(16)
评论(0)
推荐(0)
2024年8月23日
代码随想录day 38 || 322 零钱兑换,279 完全平方数,139 单词拆分
摘要: 322 零钱找还 func coinChange(coins []int, amount int) int { // 装满,并且硬币无限,可以类比完全背包问题 // dp[i][j] 表示前i个物品装满容量为j的背包所需要的最少物品数量 // 递推公式 dp[i][j] = min(dp[i-1][
阅读全文
posted @ 2024-08-23 12:00 周公瑾55
阅读(18)
评论(0)
推荐(0)
2024年8月22日
代码随想录day37 || 518 零钱兑换,377 组合总和iv,70 爬楼梯
摘要: 0-1 背包问题 在 0-1 背包问题中,每种物品只能选择一次,因此一旦选择某个物品后,剩余的容量只能放入前面的物品。这就是为什么状态转移方程是: dp[i][j] = max(dp[i-1][j], dp[i-1][j-w(i)] + v(i)) 这里的 dp[i-1][j-w(i)] + v(i
阅读全文
posted @ 2024-08-22 11:25 周公瑾55
阅读(17)
评论(0)
推荐(0)
2024年8月21日
代码随想录day36 || 1049 最后一筐石头重量||, 494 目标和,474 一和零
摘要: 1049 最后一块石头重量|| func lastStoneWeightII(stones []int) int { // 本题思路在于要想得到最小差,就要尽可能将石头分割为两堆相近的重量,然后转换为背包问题 // dp[i] 表示容量i背包能装的石头总价值,其中重量和价值相等 // 递推公式 dp
阅读全文
posted @ 2024-08-21 11:50 周公瑾55
阅读(15)
评论(0)
推荐(0)
2024年8月20日
代码随想录day35 || 416 分割等和子集
摘要: 背包问题 有n件物品和一个最多能背重量为 w 的背包。第i件物品的重量是 weight[i],得到的价值是 value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 // pake // // @Description: // @param weights: 物品i对应重量
阅读全文
posted @ 2024-08-20 11:22 周公瑾55
阅读(13)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告