Contiguous Array LeetCode solution in C++
1class Solution {2public:3int findMaxLength(vector<int> &nums) {4unordered_map<int, int> mp;5mp[0] = -1;6int sum = 0, longest_subarray = 0;7for (int i = 0; i < nums.size(); i++) {8sum += nums[i] == 0 ? -1 : 1;9if (mp.find(sum) != mp.end()) {10if (longest_subarray < i - mp[sum]) {11longest_subarray = i - mp[sum];12}13} else {14mp[sum] = i;15}16}17return longest_subarray;18}19};