diff options
Diffstat (limited to 'bag_of_tokens.cpp')
-rw-r--r-- | bag_of_tokens.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bag_of_tokens.cpp b/bag_of_tokens.cpp new file mode 100644 index 0000000..d645d2b --- /dev/null +++ b/bag_of_tokens.cpp @@ -0,0 +1,27 @@ +#include "leetcode.h" + +class Solution { +public: + int bagOfTokensScore(vector<int> &tokens, int power) { + sort(tokens.begin(), tokens.end()); + int i, j, n; + i = 0; + j = n = tokens.size(); + while (i < j) { + if (power >= tokens[i]) + power -= tokens[i++]; + else if (i - (n - j) && j > i + 1) + power += tokens[--j]; + else + break; + } + return i - (n - j); + } +}; + +int main() { + Solution obj; + vector<int> tokens = {100}; + int power = 50; + cout << obj.bagOfTokensScore(tokens, power); +} |