This is the problem i am trying to solve, along with the solution testing the test case in which i am having trouble in.
Leetcode problem: 128. Longest Consecutive Sequence
#include <iostream>
#include <vector>
#include <unordered_map>
class Solution {
public:
int longestConsecutive(std::vector<int>& nums)
{
std::unordered_map<int, int> seq;
for (auto i : nums)
{
++seq[i];
}
int max{ 0 };
for (auto i : seq)
{
int ans{ 0 };
int x{ i.first };
if (seq[x] > 0)
{
ans = 1;
int p{ x };
int q{ x };
while (seq[p - 1] > 0)
{
--p;
++ans;
}
while (seq[q + 1] > 0)
{
++q;
++ans;
}
}
if (max < ans)
max = ans;
}
return max;
}
};
int main()
{
Solution s;
std::vector<int> nums{ 4,0,-4,-2,2,5,2,0,-8,-8,-8,-8,-1,7,4,5,5,-4,6,6,-3 };
std::cout << s.longestConsecutive(nums);
return 0;
}
When i tested this test case in my offline compiler(microsoft c++ compiler in visualt studio), it is showing the test case ans as 5(which is absolutely correct).
However, upon submitting the same solution in leetcode it is showing the test case ans as 4(which is wrong). I tried testing this case in online gdb compiler also and there also this test case ans is showing as 4.
My solution has passed 55/72 cases so i am sure there is not any issue with my algorithm or my answer output format. I believe it to be an issue with leetcode or online