✅Easy Java Solution || 100% Faster 1ms 🔥🔥 || With Basic Explanation
If you really found my solution helpful please upvote it, as it motivates me to post such kind of codes and help the coding community, if you have some queries 
**If you really found my solution helpful please upvote it, as it motivates me to post such kind of codes and help the coding community, if you have some queries or some improvements please feel free to comment and share your views.**\n\nbasically we are finding occurrence of each digit in n after that we are finding same occurrence of each digit of each power of 2 which is in range between (2^0 to 2^30) if any power of 2 matches same occurence than we can return true if none of the power of 2 matches with occurence of our number n we return false\n\n```\npublic boolean reorderedPowerOf2(int n) {\n        int Count[] = Count(n);\n        int power = 1;\n        for (int i = 0; i < 31; i++) {\n            int[] PowerCount = Count(power);\n            if (Equal(Count, PowerCount)) {\n                return true;\n            }\n            power *= 2;\n        }\n        return false;\n    }\n\n    private int[] Count(int n) { // Counting Occurence of each digit\n        int Count[] = new int[10];\n        while (n != 0) {\n            Count[n % 10]++;\n            n /= 10;\n        }\n        return Count;\n    }\n\n    private boolean Equal(int ar1[], int ar2[]) {\n        for (int i = 0; i < ar2.length; i++) {\n            if (ar1[i] != ar2[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n```
['Math', 'Counting', 'Java']