tokens
题目链接
题目:你的初始能量为 P,初始分数为 0,只有一包令牌。
令牌的值为 token[i],每个令牌最多只能使用一次,可能的两种使用方法如下:
如果你至少有 token[i] 点能量,可以将令牌置为正面朝上,失去 token[i] 点能量,并得到 1 分。
如果我们至少有 1 分,可以将令牌置为反面朝上,获得 token[i] 点能量,并失去 1 分。
在使用任意数量的令牌后,返回我们可以得到的最大分数。
示例:
示例 1:
输入:tokens = [100], P = 50
输出:0
示例 2:
输入:tokens = [100,200], P = 150
输出:1
示例 3:
输入:tokens = [100,200,300,400], P = 200
输出:2
别人思路:先对tokens进行排序,然后从前面较小能量的值换分数,然后用分数换后面较大的能量,在从前面较小的能量值换分数,贪心算法。
class Solution {
public int bagOfTokensScore(int[] tokens, int P) {
int left = 0;
int right = tokens.length - 1;
int res = 0;
int points = 0;
arrays.sort(tokens);
while(left <= right){
if(P >= tokens[left]){
P -= tokens[left];
left++;
points++;
res = Math.max(points, res);
}else if(points > 0){
P += tokens[right];
right--;
points--;
}else{
break;
}
}
return res;
}
}
相关阅读
JAVA布局模式:GridBagConstraints终极技巧
GridBagConstraints布局,先发一个实例:gridx = 2; // X2gridy = 0; // Y0gridwidth = 1; // 横占一个单元格gridheight = 1; // 列
Bagging和Boosting 概念及区别 Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器
JAVA布局模式:GridBagConstraints终极技巧参数详解
布局模式 :GridBagConstraints布局,先发一个实例:gridx = 2; // X2gridy = 0; // Y0gridwidth = 1; // 横占一个单元格gridheight =