Medium
Stone Game VI — C++
Full explanation · Time O(nlogn) · Space O(n)
// Time: O(nlogn)
// Space: O(n)
class Solution {
public:
int stoneGameVI(vector<int>& aliceValues, vector<int>& bobValues) {
vector<vector<int>> sorted_vals;
vector<int> result(2);
for (int i = 0; i < size(aliceValues); ++i) {
sorted_vals.push_back({aliceValues[i] + bobValues[i],
aliceValues[i], bobValues[i]});
}
sort(begin(sorted_vals), end(sorted_vals), greater<vector<int>>());
for (int i = 0; i < size(sorted_vals); ++i) {
result[i % 2] += sorted_vals[i][1 + i % 2];
}
return (result[0] == result[1]) ? 0 : (result[0] > result[1]) ? 1 : -1;
}
};