题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个整型数组,找其中数位和相同的两两一组的数字,从中找每组数组和最大值。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int maximumSum(vector<int>& nums) {
int max_sum = -1;
unordered_map<int, int> rec; // 数位和 对 最大数值
for (const int &i : nums) {
int place_sum = 0;
for (int val = i; val > 0; val /= 10) {
place_sum += val % 10;
}
if (rec.find(place_sum) != rec.end()) {
max_sum = max(max_sum, rec[place_sum]+i);
}
rec[place_sum] = max(rec[place_sum], i);
}
return max_sum;
}
};