Java  || 100%
Complexity\n- Time complexity:\nO(n)\n\n- Space complexity:\nO(n)\n\n# Code\n\nclass Solution {\n       public int minFlips(int a, int b, int c) {\n        int 
# Complexity\n- Time complexity:\nO(n)\n\n- Space complexity:\nO(n)\n\n# Code\n```\nclass Solution {\n       public int minFlips(int a, int b, int c) {\n        int flipCount = 0;\n\n        while (a > 0 || b > 0 || c > 0) {\n            int aBit = a & 1;\n            int bBit = b & 1;\n            int cBit = c & 1;\n\n            if ((aBit | bBit) != cBit) {\n                if (aBit == bBit && aBit == 1) {\n                    flipCount += 2;\n                } else {\n                    flipCount++;\n                }\n            }\n\n            a = a >> 1;\n            b = b >> 1;\n            c = c >> 1;\n        }\n        return flipCount;\n    }\n}\n```\n\n\nOr simply:\n\n```Java\nclass Solution {\n    public int minFlips(int a, int b, int c) {\n        int flipCount = 0;\n\n        while (a > 0 || b > 0 || c > 0) {\n            int aBit = a & 1;\n            int bBit = b & 1;\n            int cBit = c & 1;\n\n            if ((aBit | bBit) != cBit) {\n                flipCount += (aBit == bBit && aBit == 1) ? 2 : 1;\n            }\n\n            a = a >> 1;\n            b = b >> 1;\n            c = c >> 1;\n        }\n        return flipCount;\n    }\n}\n```\n\n\n\n<img src="https://assets.leetcode.com/users/images/085853ae-9586-479f-acf2-ec3ce30fd0e7_1703932262.0024223.png" style="width:400px;height:auto;">\n\n<br/>
['Java']