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 4356d42

Browse files
committed
update 1363.largest-multiple-of-three.cpp
1 parent 78673a2 commit 4356d42

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

‎1363.largest-multiple-of-three.cpp‎

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,27 +81,25 @@ class Solution {
8181

8282
int i = 0, j = 0;
8383

84-
// 0, 2
8584
if( (!ones.empty() && ones.size()%3 == 0 && twos.size()%3 == 2)
8685
|| (!twos.empty() && twos.size()%3 == 0 && ones.size()%3 == 2) ){
8786
nums.push_back(twos[j++]);
8887
nums.push_back(ones[i++]);
8988
nums.push_back(twos[j++]);
9089
nums.push_back(ones[i++]);
9190
}
92-
// 2, 0
9391

94-
while(i+2<ones.size())
95-
for(int k=0; k<3; k++)
96-
nums.push_back(ones[i++]);
97-
while(j+2<twos.size())
98-
for(int k=0; k<3; k++)
99-
nums.push_back(twos[j++]);
92+
int r = (ones.size()-i)/3;
93+
nums.insert(nums.end(), ones.begin()+i, ones.begin()+i+r*3);
94+
i += r*3;
10095

101-
while(j<twos.size() && i<ones.size()){
102-
nums.push_back(twos[j++]);
103-
nums.push_back(ones[i++]);
104-
}
96+
r = (twos.size()-j)/3;
97+
nums.insert(nums.end(), twos.begin()+j, twos.begin()+j+r*3);
98+
j += r*3;
99+
100+
r = min(twos.size()-j, ones.size()-i);
101+
nums.insert(nums.end(), ones.begin()+i, ones.begin()+i+r);
102+
nums.insert(nums.end(), twos.begin()+j, twos.begin()+j+r);
105103

106104
sort(nums.begin(), nums.end(), greater<int>());
107105

0 commit comments

Comments
(0)

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