题目浅析

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

  • 简单地说,就是给一个数组,找出其中一对数的和的最大值,这对数要求最大数位数字相等,不存在的情况下返回 -1.

思路分享

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

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
int maxSum(vector<int>& nums) {
int rec_val[10]{};
int res = -1;
for (const int &i : nums) {
int max_num = 0;
int val = i;
while (val > 0) {
max_num = max(max_num, val%10);
val /= 10;
}
if (rec_val[max_num]!=0) {
res = max(rec_val[max_num] + i, res);
}
rec_val[max_num] = max(rec_val[max_num], i);
}
return res;
}
};