#include <iostream>
class Solution {
public:
int findLHS(std::vector<int>& nums) {
int LHS = 0;
for (int i = 0; i < nums.size() - 1; i++) {
int n = 0, p = 0;
bool encounteredPN1 = false;
for (int j = i + 1; j < nums.size(); j++) {
// std::cout << "nums[j] = " << nums[j] << " | nums[i] - 1 = " << nums[i] - 1 << " | nums[i] + 1 = " << nums[i] + 1 << "\n";
if (nums[j] == nums[i] - 1) {
n++;
encounteredPN1 = true;
}
if (nums[j] == nums[i] + 1) {
p++;
encounteredPN1 = true;
}
if (nums[j] == nums[i]) {
n++; p++;
}
}
if (!encounteredPN1) {
// std::cout << "FLAG NOT ARMED. RESET n = 0, p = 0\n";
n = 0; p = 0;
}
// std::cout << "n = " << n << ", p = " << p << "\n";
int len = (n > p) ? n : p;
// std::cout << "len = " << len << "\n";
if (len != 0 && len + 1 > LHS) LHS = len + 1;
// std::cout << "LHS = " << LHS << "\n---------\n";
}
return LHS;
}
};