leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE |

commit3e6d91298e2a97ca8c2b7c5d61741592a353ab2a
parent15e8ea0ae319cb32dd524d8fc5835600d58bcae6
authorDimitrije Dobrota <mail@dimitrijedobrota.com>
dateWed, 14 Feb 2024 20:11:27 +0000

1 Random Problem

Diffstat:
AProblems/2712.cpp|++++++++++++++++++++++++++++++++++++
MREADME.md|+

2 files changed, 37 insertions(+), 0 deletions(-)


diff --git a/Problems/2712.cpp b/Problems/2712.cpp

@@ -0,0 +1,36 @@

class Solution {
public:
long long minimumCost(const string &s) const {
static long long dp[100001];
const int n = size(s);
if (n == 1) return 0;
dp[0] = 0;
for (int i = 1; i < n; i++) {
dp[i] = s[i] == s[i - 1] ? dp[i - 1] : dp[i - 1] + i;
}
long long res = LLONG_MAX, acc = 0;
for (int i = n - 2; i >= 0; i--) {
if (s[i] != s[i + 1]) acc += n - i - 1;
res = min(res, dp[i] + acc);
}
return res;
}
};
// O(1) space
class Solution {
public:
long long minimumCost(const string &s) const {
long long res = 0;
for (int i = 1, n = size(s); i < n; i++) {
if (s[i] != s[i - 1]) res += min(i, n - i);
}
return res;
}
};

diff --git a/README.md b/README.md

@@ -1113,6 +1113,7 @@ for solving problems.

| 2706 | Easy | [Buy Two Chocolates](Problems/2706.cpp) |
| 2707 | Medium | [Extra Characters in a String](Problems/2707.cpp) |
| 2711 | Medium | [Difference of Number of Distinct Values on Diagonals](Problems/2711.cpp) |
| 2712 | Medium | [Minimum Cost to Make All Characters Equal](Problems/2712.cpp) |
| 2740 | Medium | [Find the Value of the Partition](Problems/2740.cpp) |
| 2742 | Hard | [Painting the Walls](Problems/2742.cpp) |
| 2780 | Medium | [Minimum Index of a Valid Split](Problems/2780.cpp) |