动态规划,贪心算法,回溯算法
-
- 不要求序列元素在原数组中连续
- 原数组取出来后,重新排序连续即可
-
- 要求原字符串连续
-
- 和盛水最多容器区别在于这个柱子可以不为0,雨水量不能相乘,盛水最多容器的话可以相乘
-
- 与字母异位词分组(leetcode)的区别在于,一个是字符串,一个是数组,数组中是字符串
- 这个是两个字符
-
最小覆盖子串(leetcode)
和找到子符串中所有字母的异位词(leetcode)进行比较:- 相同点:
- 都是从字符串中找子串
- 不同点:
- 当前的是子串里面可以有其它字符,而另一个要求不能有其它字符;这就导致,虽然两者都用到词频,但是前这是在连续的字符串上建词频,而当前的是可以在不连续的字符串上建词频。所以前者比较的是词频是否相等,当前的比较的是有效的字符数量是否相等(只有当某个字符的频率大于等于目标字符的个数时,才算一次有效)。
- 相同点:
-
- 人家要的是最小的正数,而不是连续的最小的正数
-
- 与环形链表(leetcode)的区别在于,这个是返回pos,那个是返回判断是否有环True或者False
-
- 与跳跃游戏(leetcode)相比,这个是返回最小的跳的次数,那个是返回是否能跳
背包问题(Knapsack problem)是一种组合优化的问题。它可以描述如下:假设有一个背包,它能承受的最大重量是 W,现在有 n 个物品,每个物品都有各自的重量 w1, w2, …, wn 和价值 v1, v2, …, vn。问如何选择装入背包的物品,使得背包中的物品总价值最大,同时不超过背包的最大承重。 背包问题有多种变体,其中最经典的是以下两种:
- 0-1背包问题:每种物品仅有一件,可以选择放或不放。
- 完全背包问题:每种物品有无限件,可以选择放任意件,包括不放。