Python Simple Solution | O(n) Two Pass | 740ms, Beats 95% Time
Approach\n Describe your approach to solving the problem. \nCheck the total score of the array. If it is not equal to 0, return 1. Else, loop through the array 
# Approach\n<!-- Describe your approach to solving the problem. -->\nCheck the total score of the array. If it is not equal to 0, return 1. Else, loop through the array again and whenever the score becomes 0, split the array and reset the score.\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```python []\nclass Solution:\n    def maxSubarrays(self, nums: List[int]) -> int:\n        totalScore = nums[0]\n        for num in nums:\n            totalScore &= num\n        if totalScore:\n            return 1\n        size, score = 1, (1 << 20) - 1\n        for num in nums:\n            score &= num\n            if score == 0:\n                size += 1\n                score = (1 << 20) - 1\n        if score:\n            size -= 1\n        return size\n```
['Array', 'Greedy', 'Bit Manipulation', 'Python', 'Python3']