Medium

Special Array IIPython

Full explanation · Time O(n + q) · Space O(n)

# Time:  O(n + q)
# Space: O(n)

# prefix sum
class Solution(object):
    def isArraySpecial(self, nums, queries):
        """
        :type nums: List[int]
        :type queries: List[List[int]]
        :rtype: List[bool]
        """
        prefix = [0]*len(nums)
        for i in xrange(len(nums)-1):
            prefix[i+1] = prefix[i]+int(nums[i+1]&1 != nums[i]&1)
        result = [False]*len(queries)
        for i, (l, r) in enumerate(queries):
            result[i] = prefix[r]-prefix[l] == r-l
        return result