Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8dae356

Browse files
Create Max Sum of a Pair With Equal Sum of Digits
1 parent 02956a8 commit 8dae356

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
想法:因為可能的 digitsum 介於 1-81 之間,所以可以用一個矩陣紀錄每個 digitsum 目前看到的最大數值
2+
如果前面有出現過的話則考慮更新答案,或是出現比之前更大的數值的時候更新最大數值
3+
4+
// assume there are n elements , the max element value is m
5+
Time Complexity : O(n * logm) for traversing all elements and each element takes O(logm) to find out its digit sum
6+
Space Complexity : O(logm) for there are O(logm) possible digit sums
7+
8+
class Solution {
9+
public:
10+
int calculatedigitsum(int num) {
11+
int sum = 0 ;
12+
while (num > 0) {
13+
sum += num % 10 ;
14+
num /= 10 ;
15+
}
16+
return sum ;
17+
}
18+
int maximumSum(vector<int>& nums) {
19+
int ans = -1 ;
20+
vector<int> digitmax(82) ;
21+
22+
for(auto &i : nums) {
23+
int digitsum = calculatedigitsum(i) ;
24+
25+
if (digitmax[digitsum] != 0)
26+
ans = max(ans , digitmax[digitsum] + i) ;
27+
digitmax[digitsum] = max(digitmax[digitsum] , i) ;
28+
}
29+
30+
31+
return ans ;
32+
}
33+
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /