Skip to content

Commit 7250780

Browse files
authored
Update maximum-size-of-a-set-after-removals.cpp
1 parent afb9cb2 commit 7250780

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

C++/maximum-size-of-a-set-after-removals.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ class Solution {
1717
const int n1 = size(lookup1);
1818
const int n2 = size(lookup2);
1919
const int c = size(common);
20-
return min(min(n1 - c, n / 2) + min(n2 - c, n / 2) + c, n);
20+
const int d1 = min(n1 - c, n / 2);
21+
const int d2 = min(n2 - c, n / 2);
22+
return min(n, d1 + d2 + c);
2123
}
2224
};
2325

@@ -39,8 +41,10 @@ class Solution2 {
3941
const int n1 = size(lookup1);
4042
const int n2 = size(lookup2);
4143
const int c = size(common);
42-
const int r1 = max(n / 2 - (n1 - c), 0);
43-
const int r2 = max(n / 2 - (n2 - c), 0);
44-
return min(n1 - c, n / 2) + min(n2 - c, n / 2) + min(r1 + r2, c);
44+
const int d1 = min(n1 - c, n / 2);
45+
const int d2 = min(n2 - c, n / 2);
46+
const int r1 = n / 2 - d1;
47+
const int r2 = n / 2 - d2;
48+
return d1 + d2 + min(r1 + r2, c); // = min(d1+d2+r1+r2, d1+d2+c) = min(d1+d2+(n//2-d1)+(n//2-d2), d1+d2+c) = min(n, d1+d2+c)
4549
}
4650
};

0 commit comments

Comments
 (0)