你的初始 能量 为 P
,初始 分数 为 0
,只有一包令牌 tokens
。其中 tokens[i]
是第 i
个令牌的值(下标从 0 开始)。
令牌可能的两种使用方法如下:
- 如果你至少有
token[i]
点 能量 ,可以将令牌i
置为正面朝上,失去token[i]
点 能量 ,并得到1
分 。 - 如果我们至少有
1
分 ,可以将令牌i
置为反面朝上,获得token[i]
点 能量 ,并失去1
分 。
每个令牌 最多 只能使用一次,使用 顺序不限 ,不需 使用所有令牌。
在使用任意数量的令牌后,返回我们可以得到的最大 分数 。
示例 1:
输入:tokens = [100], P = 50 输出:0 解释:无法使用唯一的令牌,因为能量和分数都太少了。
示例 2:
输入:tokens = [100,200], P = 150 输出:1 解释:令牌 0 正面朝上,能量变为 50,分数变为 1 。不必使用令牌 1 ,因为你无法使用它来提高分数。
示例 3:
输入:tokens = [100,200,300,400], P = 200 输出:2 解释:按下面顺序使用令牌可以得到 2 分: 1. 令牌 0 正面朝上,能量变为 100 ,分数变为 1 2. 令牌 3 正面朝下,能量变为 500 ,分数变为 0 3. 令牌 1 正面朝上,能量变为 300 ,分数变为 1 4. 令牌 2 正面朝上,能量变为 0 ,分数变为 2
提示:
0 <= tokens.length <= 1000
0 <= tokens[i], P < 104