Répertoire d'articles
1. Titre
Votre énergie initiale est P, le score initial est de 0 et il n'y a qu'un seul paquet de jetons.
La valeur du jeton est token[i]
que chaque jeton ne peut être utilisé qu'une seule fois au maximum . Les deux méthodes d'utilisation possibles sont les suivantes:
- Si vous avez au moins une
token[i]
énergie ponctuelle, le jeton peut être placé à l'token[i]
endroit , perdre de l' énergie ponctuelle et obtenir 1 point. - Si nous avons au moins un point, le jeton peut être configuré pour sauvegarder, accéder à l'
token[i]
énergie du point et perdre 1 point.
Après avoir utilisé un nombre quelconque de jetons, renvoyez le score maximum que nous pouvons obtenir .
示例 1:
输入:tokens = [100], P = 50
输出:0
示例 2:
输入:tokens = [100,200], P = 150
输出:1
示例 3:
输入:tokens = [100,200,300,400], P = 200
输出:2
提示:
tokens.length <= 1000
0 <= tokens[i] < 10000
0 <= P < 10000
Source: LeetCode Lien: https://leetcode-cn.com/problems/bag-of-tokens
Copyright est la propriété de LeetCode . Pour les réimpressions commerciales, veuillez contacter l'autorisation officielle. Pour les réimpressions non commerciales, veuillez indiquer la source.
2. Résolution de problèmes
class Solution {
public:
int bagOfTokensScore(vector<int>& tokens, int P) {
int points = 0, maxPoints = 0, n = tokens.size();
sort(tokens.begin(), tokens.end());
if(n==0 || P < tokens[0])
return 0;
int l = 0, r = n-1;
while(l <= r)
{
if(P >= tokens[l])//能量够,去拿分
{
points++;
P -= tokens[l];//消耗最少的能量
l++;
}
else//能量不够
{
if(points > 0)
{
points--;//花分去获取大能量
P += tokens[r];
r--;
}
else
break;
}
maxPoints = max(points, maxPoints);
}
return maxPoints;
}
};
16 ms 10,4 Mo
Mon adresse de blog CSDN https://michael.blog.csdn.net/
Appuyez longuement ou scannez le code QR pour suivre mon compte officiel (Michael Amin), venez ensemble, apprenez et progressez ensemble!