打车公司店面

Given a menu card and an amount, how many dishes can I afford to eat/drink at the restaurant. Return all such combinations of dishes from the menu, which I can pay for in given amount.

Explanation:

Menu:
Noodle $12.87
Rice $8.23
Soup $5.76
Coke $3.12
Pizza $10.89

Amount: $30

Output:
{{Noodle,Rice,Soup,Coke},
{Noodle,Pizza,Soup},
{Pizza,Rice,Soup,Coke},
{Noodle,Noodle,Coke},
{Noodle,Rice,Rice},
{Rice,Rice,Rice,Coke},
{Soup,Soup,Soup,Pizza},
{Coke,Coke…9x},
{Pizza,Pizza,Coke,Coke}}

As,
Noodle+Rice+Soup+Coke = 29.98
Noodle+Pizza+Soup = 29.52
Pizza+Rice+Soup+Coke = 28 …so on

Note: The amount we aggregate should be closest to the given amount i.e in this case $30

377 Combination Sum IV 变种