Three Consecutive Odds

EasyArray

Solution

export function threeConsecutiveOdds(arr: number[]): boolean {
  const findOddIndex = (arr: number[], startIndex = 0) => {
    for (let i = startIndex; i < arr.length; i++) {
      if (arr[i] % 2 === 1) {
        return i;
      }
    }
    return arr.length;
  };
 
  const n = arr.length;
  let startIndex = findOddIndex(arr);
  let endIndex = startIndex + 1;
  while (endIndex < n) {
    if (arr[endIndex] % 2 === 1) {
      endIndex += 1;
    } else {
      startIndex = findOddIndex(arr, endIndex + 1);
      endIndex = startIndex + 1;
    }
    if (endIndex - startIndex === 3) {
      return true;
    }
  }
  return false;
}