@@ -81,27 +81,25 @@ class Solution {
81
81
82
82
int i = 0 , j = 0 ;
83
83
84
- // 0, 2
85
84
if ( (!ones.empty () && ones.size ()%3 == 0 && twos.size ()%3 == 2 )
86
85
|| (!twos.empty () && twos.size ()%3 == 0 && ones.size ()%3 == 2 ) ){
87
86
nums.push_back (twos[j++]);
88
87
nums.push_back (ones[i++]);
89
88
nums.push_back (twos[j++]);
90
89
nums.push_back (ones[i++]);
91
90
}
92
- // 2, 0
93
91
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 ;
100
95
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);
105
103
106
104
sort (nums.begin (), nums.end (), greater<int >());
107
105
0 commit comments