@@ -10,8 +10,8 @@ class Solution {
10
10
{2 , {{2 }, {5 }, {8 }, {1 , 1 }, {1 , 4 }, {4 , 4 }, {1 , 7 }, {4 , 7 }, {7 , 7 }}}
11
11
};
12
12
unordered_map<int , int > count = counter (digits);
13
- const auto & total = accumulate (cbegin (digits), cend (digits), 0 );
14
- for (const auto & deletes : lookup.at (total % 3 )) {
13
+ const auto & r = accumulate (cbegin (digits), cend (digits), 0 ) % 3 ;
14
+ for (const auto & deletes : lookup.at (r )) {
15
15
if (remove (deletes, &count)) {
16
16
break ;
17
17
}
@@ -53,12 +53,12 @@ class Solution2 {
53
53
public:
54
54
string largestMultipleOfThree (vector<int >& digits) {
55
55
unordered_map<int , int > count = counter (digits);
56
- const auto & total = accumulate (cbegin (digits), cend (digits), 0 );
57
- if (total % 3 ) {
56
+ const auto & r = accumulate (cbegin (digits), cend (digits), 0 ) % 3 ;
57
+ if (r ) {
58
58
bool is_found = false ;
59
59
for (int i = 0 ; i < 10 ; ++i) {
60
60
vector<int > deletes = {i};
61
- if (remove (deletes, total , &count)) {
61
+ if (remove (deletes, r , &count)) {
62
62
is_found = true ;
63
63
break ;
64
64
}
@@ -67,7 +67,7 @@ class Solution2 {
67
67
for (int i = 0 ; i < 10 ; ++i) {
68
68
for (int j = 0 ; j <= i; ++j) {
69
69
vector<int > deletes = {i, j};
70
- if (remove (deletes, total , &count)) {
70
+ if (remove (deletes, r , &count)) {
71
71
break ;
72
72
}
73
73
}
@@ -82,9 +82,9 @@ class Solution2 {
82
82
}
83
83
84
84
private:
85
- bool remove (const vector<int >& deletes, int total , unordered_map<int , int > *count) {
85
+ bool remove (const vector<int >& deletes, int r , unordered_map<int , int > *count) {
86
86
const auto & delete_count = counter (deletes);
87
- if (accumulate (cbegin (deletes), cend (deletes), 0 ) % 3 == total % 3 &&
87
+ if (accumulate (cbegin (deletes), cend (deletes), 0 ) % 3 == r &&
88
88
all_of (cbegin (delete_count), cend (delete_count),
89
89
[&count](const auto & kvp) {
90
90
return (*count)[kvp.first ] >= kvp.second ;
0 commit comments