力扣刷题笔记
文章平均质量分 70
许愿与你永世安宁
大模型&算法&强化学习 愿此间山有木兮卿有意,昨夜星辰恰似你,身无双翼却心有一点灵犀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
背包问题(01背包)
摘要:本文介绍了一个经典的0-1背包问题解决方案。给定n个设备和行李箱容量bagweight,每个设备有weight和value属性,要求在容量限制下选择设备使总价值最大。采用动态规划方法,定义dp[i][j]表示前i个物品在容量j时的最大价值。状态转移方程为dp[i][j] = max(dp[i-1][j], dp[i-1][j-weight[i]] + value[i])。初始化时处理首个物品情况,随后通过双重循环依次计算每个状态。最终dp[n-1][bagweight]即为所求最大值。原创 2025-07-27 10:07:51 · 738 阅读 · 0 评论 -
力扣128 最长连续子序列
摘要:本文介绍了一个在未排序整数数组中寻找最长连续序列长度的O(n)时间算法。通过将数组转为哈希集合实现O(1)查找,算法首先定位序列起点(不存在x-1的元素),然后向后扩展序列。关键步骤包括:1)使用迭代器构造哈希集合;2)利用contains函数检查元素存在性;3)计算序列长度并更新最大值。该解法避免了排序,实现了线性时间复杂度。参考LeetCode官方题解,适用于C++等语言实现。原创 2025-07-26 16:31:10 · 951 阅读 · 0 评论 -
力扣343 整数拆分
给定一个正整数n,将其拆分为k个的和(k >= 2),并使这些整数的乘积最大化。返回你可以获得的最大乘积。原创 2025-07-03 10:37:34 · 592 阅读 · 0 评论 -
力扣53 最大子数组和(动态规划)
核心思想:以当前元素结尾的最大子数组和 = max(前一个最大子数组和,0)+ 当前元素。原创 2025-07-02 18:10:29 · 438 阅读 · 0 评论 -
力扣74 搜索二维矩阵
matrix 是一个 vector<vector<int>> 类型的二维向量,其本质是一个嵌套的动态数组matrix.size() 返回的是外层 vector 的大小,即有多少个 vector<int> 元素,也就是二维向量的行数matrix[0] 是第一行的 vector<int>,即第一个 vector<int> 元素matrix[0].size() 返回第一行的大小,也就是该行中 int 元素的数量,即列数在 C++ 中,数组索引是从 0 开始的。原创 2025-07-01 10:56:21 · 838 阅读 · 0 评论 -
动态规划 题目 (持续更新...)
因为楼顶的位置是超过最后一个台阶(比如cost有3个元素,楼顶在第4阶),所以dp数组的长度是 cost.size() + 1。从第i-1阶跨1步:体力是 dp[i-1] + cost[i-1](因为要跨上第i-1阶时需要支付cost[i-1])。从第i-2阶跨2步:体力是 dp[i-2] + cost[i-2](因为要跨上第i-2阶时需要支付cost[i-2])。dp[i] 表示到达第i阶台阶所需的最小体力。取这两种方式的最小值作为 dp[i] 的值。原创 2025-06-10 10:32:50 · 316 阅读 · 0 评论
分享