数据结构
Forsge
这个作者很懒,什么都没留下…
展开
-
2021-10-27 数据结构学习-贪婪算法02
问:一群人过河,船最大承受maxwt,且一次最多装两个人,现在有people[].length个人,及对应体重people[i],求船的运输情况。分析:前提是people数组有序。每次选最重的人与最轻的人一组坐船,若超重就只坐最重的船客。换下一组人,即倒数第二个人......最终送完所有人船员体重情况 1 2 3 4 5 只要left<=right就可以分组(最重最轻)且分完left++ right--,或者只是right--(只送最重那一个人),但是当lef原创 2021-10-27 16:26:05 · 106 阅读 · 0 评论 -
2021-10-27 数据结构学习-贪婪算法01
问:1列站成队的孩子成绩各不相同,老师分发糖果给每个人,且每个孩子至少会分得到一个,而成绩更好的孩子分得的糖果比左右的孩子多一个,求需要的糖果总数。思路:所有孩子至少会分得到一个糖果,所有设置candy[]的所有值大小默认为1。由于成绩高的一定会分得的比成绩低的加一,故从两边各遍历一次,左到右只要是右边大的就加一,右到左只要是左边大于右边就相对左边一个加一。第三遍历获得最终结果,计算两次遍历中值大的一个作为最终结果(满足两次遍历的条件必须选取最大的一项)但第三次可以和第二次合并,在右到左时就可惜计算最大原创 2021-10-27 16:10:14 · 56 阅读 · 0 评论 -
2021-10-26 数据结构学习-0/1背包
问题:背包最大容量maxweight,不同物件质量和价值weight[],value[]求出背包能装最大质量物件且物件不能重复的前提下所装的最大价值为多少思路:将不同情况制作成bv[i][j]矩阵且每个块的值有两种情况选当前物品和不选当前物品。选当前物品:应考虑到背包容量是否在选完物品后有剩余,即还能装其他物品,则价值为当前物品价值加上剩余容量的最大价值,而容量x的最大价值的情况为bv[i-1][x],即上一行中背包容量为x的块b[i][j]=value[i]+bv[i-1][j-wei原创 2021-10-26 23:33:23 · 85 阅读 · 0 评论