Simple python3 solution | 700 ms - faster than 96.21% solutions
Approach\n Describe your approach to solving the problem. \nIf nums[0] AND nums[1] AND ... AND nums[-1] != 0 than exist only one subarray with minimum score, so
# Approach\n<!-- Describe your approach to solving the problem. -->\nIf `nums[0] AND nums[1] AND ... AND nums[-1] != 0` than exist only one subarray with minimum score, so split nums to subarrays with `AND` equal to 0, otherwise return 1.\n\n# Complexity\n- Time complexity: $$O(n)$$\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: $$O(1)$$\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n``` python3 []\nclass Solution:\n    def maxSubarrays(self, nums: List[int]) -> int:\n        big_number = (1 << 20) - 1\n        result = 0\n        state = big_number\n        for elem in nums:\n            state &= elem\n            if state == 0:\n                result += 1\n                state = big_number\n        return result or 1\n```
['Math', 'Greedy', 'Bit Manipulation', 'Python3']