The Indian Engineer

Problem 1550 Three Consecutive Odds

Posted on 2 mins

Array Parity

Problem Statement

Link - Problem 1550

Question

Given an integer array arr, return true if there are three consecutive odd numbers in the array. Otherwise, return false.

Example 1

Input: arr = [2,6,4,1]
Output: false
Explanation: There are no three consecutive odds.

Example 2

Input: arr = [1,2,34,3,4,5,7,23,12]
Output: true
Explanation: [5,7,23] are three consecutive odds.

Constraints

- `1 <= arr.length <= 1000`
- `1 <= arr[i] <= 1000`

Solution

class Solution {
public:
    bool threeConsecutiveOdds(vector<int>& arr) {
        if(arr.size()==1||arr.size()==2)
        return false;
        for(int i=0;i<arr.size()-2;i++)
        {
            if(arr[i]%2!=0)
            {
                if(arr[i+1]%2 !=0 && arr[i+2]%2 !=0)
                {
                   return true;
                }
            }

        }
      return false;
    }
};

Complexity Analysis

Explanation

1. Intuition

- We just need to check if there are three consecutive odd numbers in the array.
- If we find such a sequence, we return true.
- Otherwise, we return false.
- If we find the current number to be odd check if next two numbers are also odd.

2. Implementation

- If the size of the array is less than 3, return false.
- Iterate from `0` to `n-2`.
- Check if `arr[i]` is odd.
- If it is odd, check if `arr[i+1]` and `arr[i+2]` are also odd.
- If they are, return true.
- If no such sequence is found, return false.