![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
卜思凡
这个作者很懒,什么都没留下…
展开
-
背包问题分类
01背包问题有 n 个物体,重量分别为 wi,价值为 vi,在总重量不超过容量 C 的情况下让总价值最高,但不允许只取走部分物体,要拿走只能整个拿走。从01背包开始就涉及到了动态规划的知识,动态规划的本质就是递推。先打表进行观察:表中 dp[ i ] [ j ] 表示容量为 j,可以在 0 号物品到 i 号物品中进行任意组合,这种情况下的最大值。第一行与第一列都不用说,一眼就可以直接得到答案。剩下的部分怎么进行选择呢?比如 dp[2] [4] = 6,我们已经知道了 dp[1] [4] =原创 2020-09-02 10:54:53 · 759 阅读 · 0 评论 -
TopK问题
问题描述:从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题。栗子:从arr[1, 12]={5,3,7,1,8,2,9,4,7,2,6,6} 这n=12个数中,找出最大的k=5个。一、排序排序是最容易想到的方法,将n个数排序之后,取出最大的k个,即为所得。时间复杂度:O(n*lg(n))分析:明明只需要TopK,却将全局都排序了,这也是这个方法复杂度非常高的原因。那能不能不全局排序,而只局部排序呢?这就引出了第二个优化方法。二、局部排序不再全局排序,只对最大的k个原创 2020-08-31 11:00:24 · 150 阅读 · 0 评论