1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-19 17:56:55 +02:00
LeetCode/cpp/contiguous-array.cpp
Matej Focko c228a24b1a
cpp: add «525. Contiguous Array»
Signed-off-by: Matej Focko <mfocko@redhat.com>
2024-03-17 23:39:17 +01:00

27 lines
652 B
C++

#include <unordered_map>
#include <vector>
class Solution {
public:
int findMaxLength(const std::vector<int> &nums) {
std::unordered_map<int, int> lengths;
lengths[0] = -1;
int max_length = 0;
int count = 0;
for (auto i = 0u; i < nums.size(); ++i) {
count += nums[i] == 1 ? 1 : -1;
auto len = lengths.find(count);
if (len != lengths.end()) {
max_length =
std::max(max_length, static_cast<int>(i) - len->second);
} else {
lengths[count] = i;
}
}
return max_length;
}
};