力扣
文章平均质量分 85
数据结构算法思想以及解题思路
汀沿河
共同学习
展开
-
7.2 多维动态规划
多维动态规划是动态规划的一个扩展,它处理的问题通常具有多个维度的状态空间。之所以 dp[i][j] 的定义不是 text1[0:i] 和 text2[0:j] ,是为了方便当 i = 0 或者 j = 0 的时候,dp[i][j]表示的为空字符串和另外一个字符串的匹配,这样 dp[i][j] 可以初始化为 0.- 这通常涉及到一个递推关系,比如 `dp[i][j][k] = min(dp[i-1][j][k], dp[i][j-1][k], dp[i][j][k-1]) + cost(i, j, k)`。原创 2024-07-18 11:03:07 · 776 阅读 · 0 评论 -
7.1 动态规划背包问题综述
动态规划中的背包问题是一类经典的优化问题,主要涉及到在给定的限制条件下(如背包容量),如何选择物品集合以达到某种最优目标(如价值最大)。这类问题通常可以细分为几种类型,包括0-1背包问题、完全背包问题、多重背包问题以及分数背包问题。原创 2024-07-05 10:29:35 · 842 阅读 · 0 评论 -
7 动态规划
动态规划解决问题原创 2024-07-03 15:50:35 · 1184 阅读 · 1 评论 -
6 矩阵相关案例
矩阵:螺旋矩阵原创 2024-07-01 20:10:27 · 736 阅读 · 0 评论 -
5 数组相关操作:
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123思考:1 这个题目有点印象否,连续自数组,可以使用前缀和求解,不过这个要O(N**2);2 动态规划。分析题目,只要求解最大连续子数组的和,那么我们就把所有访问到当前位置的最大连续子数据保存下来,存放在cum_sums = [];nums[0]什么意思?原创 2024-06-30 14:54:25 · 315 阅读 · 0 评论 -
4 前缀和、双端队列使用:子串
前缀和、双端队列原创 2024-06-28 14:21:40 · 615 阅读 · 0 评论 -
3 滑动窗口
滑动窗口的优势在于它可以在O(N)的时间复杂度内解决很多问题,其中N是序列的长度,通过一次遍历就能完成大部分计算,非常适合处理大规模数据流或高效遍历数组的需求。原创 2024-06-27 16:26:29 · 768 阅读 · 0 评论 -
2 双指针
双指针:两头看策略;原创 2024-06-26 17:11:39 · 282 阅读 · 0 评论 -
1 哈希应用
O(1) 的哈希Python中的哈希表主要通过内置的字典(dict)类型实现。对于字典的操作,包括插入(insert)、删除(delete)和查找(lookup)的时间复杂度,在理想情况下可以视为O(1),即常数时间复杂度。这是因为哈希表通过哈希函数将键(key)直接映射到表中的某个位置,理论上可以做到直接访问。然而,这是在假设哈希函数能够均匀分布元素,且哈希表有足够的空间以保持低冲突率的理想情况下的讨论。:当不同的键通过哈希函数映射到相同的索引时,就会发生冲突。原创 2024-06-26 14:23:53 · 744 阅读 · 0 评论 -
1 数据结构算法:目录
数据结构算法目录原创 2024-06-27 16:42:32 · 259 阅读 · 0 评论