LCP 51-烹饪料理
欢迎各位勇者来到力扣城,城内设有烹饪锅供勇者制作料理,为自己恢复状态。 勇者背包内共有编号为 0 ~ 4
的五种食材,其中 materials[j]
表示第 j
种食材的数量。通过这些食材可以制作若干料理,cookbooks[i][j]
表示制作第 i
种料理需要第 j
种食材的数量,而attribute[i] = [x,y]
表示第 i
道料理的美味度 x
和饱腹感 y
。 在饱腹感不小于 limit
的情况下,请返回勇者可获得的最大美味度。如果无法满足饱腹感要求,则返回 -1
。 注意: - 每种料理只能制作一次。 示例 1:
输入:
materials = [3,2,4,1,2]
>cookbooks = [[1,1,0,1,2],[2,1,4,0,0],[3,2,4,1,0]]
>attribute = [[3,2],[2,4],[7,6]]
limit = 5
> >输出:7
> >解释: >食材数量可以满足以下两种方案: >方案一:制作料理 0 和料理 1,可获得饱腹感
2+4、美味度 3+2 >方案二:仅制作料理 2, 可饱腹感为 6、美味度为 7 >因此在满足饱腹感的要求下,可获得最高美味度 7 示例 2:
输入:materials = [10,10,10,10,10]
>cookbooks = [[1,1,1,1,1],[3,3,3,3,3],[10,10,10,10,10]]
>attribute = [[5,5],[6,6],[10,10]]
>limit = 1
> >输出:11
> >解释:通过制作料理 0 和
1,可满足饱腹感,并获得最高美味度 11 提示: +materials.length == 5
+1 <= cookbooks.length == attribute.length <= 8
+cookbooks[i].length == 5
+attribute[i].length == 2
+0 <= materials[i], cookbooks[i][j], attribute[i][j] <= 20
+1 <= limit <= 100
Problem: LCP 51. 烹饪料理
[TOC]
思路
枚举所有情况 O(2^n)
解题方法
采用二进制枚举,计算耗材,美味度,饱食度
复杂度
时间复杂度:
添加时间复杂度, 示例: O(2^n)
空间复杂度:
添加空间复杂度, 示例: O(1)
Code
1 |
|