Well explained with help of test Case🔥🔥
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \nfor the test case [22,2
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\nfor the test case [22,21,29,22]\nif you break it into 2 subarray then the sum of score of subarray will become 40 which is not minimum that\'s why the ans is 1.\n`(22 & 21) + (29 & 22) =40`\n`(22 & 21 & 29 & 22) = 20 (Min.)`\n\nso the answer other than 1 is only possible when the and of array is 0 beacuse `0*anything == 0`\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\npublic:\n    int maxSubarrays(vector<int>& nums) {\n        int n = nums.size();\n        if(n==0)\n            return 0;\n        int total_and = nums[0];\n        for(int i=1; i<n; i++){\n            total_and = nums[i] & total_and;\n        }\n       \n        if(total_and == 0)\n        {\n            int temp = ~0;\n            int count=0;\n            for(int i=0; i<n;i++){\n            temp = temp & nums[i];\n                if(temp == total_and)\n                {\n                    count++;\n                    temp = ~0;\n                }\n            }\n            return count;\n        }\n        else return 1;\n        \n        \n    }\n};\n```
['Greedy', 'Bit Manipulation', 'C++']