面试题 17.05. 字母与数字
链接:. – 力扣(LeetCode)
题解:把字母看成1,把数字看为-1,将题目变为求的和为0的最长连续子数组
class Solution {
public:
vector findLongestSubarray(vector& array) {
if (array.size() <= 0) {
return {};
}
std::unordered_map table;
table[0] = -1;
int sum = 0;
int len = 0;
int index = 0;
for (int i = 0; i second > len) {
len = i - it->second;
index = it->second+1;
}
} else {
table[sum] = i;
}
}
std:vector result;
result.reserve(len);
for (int i = 0; i < len; ++i) {
result.push_back(array[index+i]);
}
return result;
}
};