Bit Manipulation| Easy to understand
Intuition\nintuition is that smallest AND will be equal to AND of whole array \n        there cannot be any subarray whose AND is less than AND od array\n      
# Intuition\nintuition is that smallest AND will be equal to AND of whole array \n        there cannot be any subarray whose AND is less than AND od array\n        so if array AND is >0 then ans ==1\n        else we can count ans\n\n\n\n# Complexity\n- Time complexity:O(n)\n\n- Space complexity:O(1)\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 sub_and=nums[0];\n        int n=nums.size();\n        for(int i=1;i<n;i++){\n            sub_and=sub_and&nums[i];\n        }\n        \n        if(sub_and) return 1;\n        \n         // to set all one in x like x=111111....\n        int cnt=0;\n        int x=(1<<20)-1;\n        for(int i=0;i<n;i++){\n            x=x&nums[i];\n            if(x==sub_and){\n                cnt++;\n                x=(1<<20)-1;\n            }\n        }\n        \n        return cnt;\n    }\n};\n```
['Bit Manipulation', 'C++']