Sponsored
We can use a sliding window approach with a counter to track consecutive numbers as we iterate through the list.
Time Complexity: O(n), where n is the number of elements in the list. Space Complexity: O(1).
1function findConsecutiveNumbers(nums) {
2 let result = [];
3 let count = 1;
4 for (let i = 1; i < nums.length; i++) {
5 if (nums[i] === nums[i - 1]) {
6 count++;
7 if (count === 3 && !result.includes(nums[i])) {
8 result.push(nums[i]);
9 }
10 } else {
11 count = 1;
12 }
13 }
14 return result;
15}
16
17const nums = [1, 1, 1, 2, 1, 2, 2];
18console.log(findConsecutiveNumbers(nums));
19
For JavaScript, an array is used to keep track of any number that appears at least thrice in a row. The 'count' variable indicates how many consecutive identical numbers have been encountered.
This approach uses a HashMap (or Dictionary in Python) to keep track of the sequence counts of numbers. This way, we can determine if any number is repeated consecutively at least three times.
Time Complexity: O(n). Space Complexity: O(1) since we use only limited extra space.
1import
In Java, we leverage a HashMap to record numbers already recognized as appearing consecutively three times, eliminating duplication in our results.