最新 最热

线性dp

f[i][j]表示从开始的位置到i,j位置的路径之和的最大值。因为f[i][j]是要求的那个,所以我们要求出它的状态方程f[i][j]=max(f[i-1][j-1]+a[i][j],f[i-1][j]+a[i][j])ok,现在开始我们做这道题...

2023-05-30
2

动态规划——01背包

01背包:给你n个物品,每个物品都有一个体积和价值,且物品只有一个,给你一个背包体积v,要求背包里面装的物品价值之和最大。

2023-05-30
1

区间dp

问题描述:有多堆石子,排成一排,现将这堆石子合并成有堆,合并的规则是只能是相邻的两堆进行合并,合并所消耗的体力为两堆石子的重量。最后把所以消耗的体力加起来就是合并成一堆所需要的体力,而我们需要求体力的最小值。问题...

2023-05-30
2

动态规划——分组背包

分组背包:有N组物品,背包体积为V;选法:每一组物品里面只能选择一个;结果:总体积不超过V的最大价值

2023-05-30
1

找出直系亲属【并查集、vector路径存储】

如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparent,C是A,B的great-grandchild,之后再......

2023-05-25
1

【代码随想录】二刷-单调栈

单调栈739. 每日温度// 时间复杂度:O(n)// 空间复杂度:O(n)class Solution {public: vector<int> dailyTemperatures(vector<int>& t) { stack<int>st;// 存下标 int n......

2023-05-13
2

【代码随想录】二刷-双指针法

双指针27. 移除元素// 时间复杂度 O(n)// 空间复杂度 O(1)class Solution {public: int removeElement(vector<int>& nums, int val) { int slow = 0; int fast = 0...

2023-05-13
1

【代码随想录】二刷-哈希表

哈希表哈希表一般用来快速查找某个元素是否在一个集合中。如果使用枚举的话时间复杂度为O(n),而使用哈希表只O(1)就可以做到。——元素查询。----242.有效的字母异位词 使用unordered_map// 时间复杂度 O(n)// 空间复...

2023-05-13
1

C++模板知识点总结

函数模板就是建立一个通用的函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。

2023-05-12
1

浅谈list与vector的区别

在学习完list和vector这两个运用最广泛的容器后我们发现这两个容器有许多相似的用法,甚至在大多时候(有时候不行,后文会提到)这2个容器能直接相互替换,此时我们可能会有些疑问,这么多重复的内容为啥不能把这2个容器相互借鉴...

2023-04-16
1