From 92b72162c50c361bea22591325263cec31555de2 Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:24:14 +0530 Subject: [PATCH] Create 3208-alternating-groups-ii.js Solved alternating-groups-ii --- javascript/3208-alternating-groups-ii.js | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 javascript/3208-alternating-groups-ii.js diff --git a/javascript/3208-alternating-groups-ii.js b/javascript/3208-alternating-groups-ii.js new file mode 100644 index 000000000..21b9a2c02 --- /dev/null +++ b/javascript/3208-alternating-groups-ii.js @@ -0,0 +1,36 @@ +/** + * Sliding Window + * Time O(n) | Space O(n) + * https://leetcode.com/problems/alternating-groups-ii + * @param {number[]} colors + * @param {number} k + * @return {number} + */ +var numberOfAlternatingGroups = function(colors, k) { + + colors = [...colors, ...colors]; + let left = 0; + let ptr = 0; + let count = 0; + + while (left < colors.length/2) { + + if ((ptr - left) + 1 === k) { + count++; + left++; + ptr++; + + if (colors[ptr] === colors[ptr-1]) { + left = ptr; + } + continue; + } + + ptr++ + if (colors[ptr] === colors[ptr-1]) { + left = ptr; + } + } + + return count; +};