3151. Special Array I

An array is considered special if every pair of its adjacent elements contains two numbers with different parity.

You are given an array of integers nums. Return true if nums is a special array, otherwise, return false.

Example 1:

Input: nums = [1]

Output: true

Explanation:

There is only one element. So the answer is true.

Example 2:

Input: nums = [2,1,4]

Output: true

Explanation:

There is only two pairs: (2,1) and (1,4), and both of them contain numbers with different parity. So the answer is true.

Example 3:

Input: nums = [4,3,1,6]

Output: false

Explanation:

nums[1] and nums[2] are both odd. So the answer is false.

Constraints:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

Approach 01

class Solution {
public:
    bool isArraySpecial(vector<int>& nums) {
        int size = nums.size();

        if (size == 1) {
            return true;
        }

        for (int i = 1; i < size; ++i) {
            // Check if two consecutive numbers have the same parity
            if ((nums[i] & 1) == (nums[i - 1] & 1)) {
                return false;
            }
        }
        return true;
    }
};
class Solution:
    def isArraySpecial(self, nums: list[int]) -> bool:
        size = len(nums)

        if size == 1:
            return True

        for i in range(1, size):
            # Check if two consecutive numbers have the same parity
            if (nums[i] & 1) == (nums[i - 1] & 1):
                return False

        return True

Time Complexity:

  • Single Pass Iteration:

    We iterate through the array once, checking the parity of consecutive elements. This takes \( O(N) \) time.

  • Overall Time Complexity:

    \( O(N) \), where \( N \) is the number of elements in the array.

Space Complexity:

  • Input Storage:

    The input array is passed by reference, so it does not contribute to extra space usage.

  • Constant Extra Space:

    We only use a few integer variables, leading to an auxiliary space complexity of \( O(1) \).

  • Overall Space Complexity:

    \( O(1) \).

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top