Simple Java solution beats 100%
\n    public boolean judgePoint24(int[] nums) {\n        double[] dbls = new double[nums.length];\n        for (int i = 0; i < nums.length; i++) dbls[i] = (doub
```\n    public boolean judgePoint24(int[] nums) {\n        double[] dbls = new double[nums.length];\n        for (int i = 0; i < nums.length; i++) dbls[i] = (double) nums[i];\n        return solve(dbls);\n    }\n\n    private boolean solve(double[] dbls) {\n        if (dbls.length == 1) {\n            return Math.abs(dbls[0] - 24.0) <= .0000000000001;\n        }\n        double[] nextDbls = new double[dbls.length - 1];\n        for (int i1 = 1; i1 < dbls.length; i1++) {\n            for (int i2 = 0; i2 < i1; i2++) {\n                fill(dbls, nextDbls, i1, i2);\n                \n                nextDbls[0] = dbls[i1] + dbls[i2];\n                if (solve(nextDbls)) return true;\n\n                nextDbls[0] = dbls[i1] - dbls[i2];\n                if (solve(nextDbls)) return true;\n\n                nextDbls[0] = dbls[i2] - dbls[i1];\n                if (solve(nextDbls)) return true;\n\n                nextDbls[0] = dbls[i1] * dbls[i2];\n                if (solve(nextDbls)) return true;\n\n                nextDbls[0] = dbls[i1] / dbls[i2];\n                if (dbls[i2] != 0 && solve(nextDbls)) return true;\n\n                nextDbls[0] = dbls[i2] / dbls[i1];\n                if (dbls[i1] != 0 && solve(nextDbls)) return true;\n            }\n        }\n        return false;\n    }\n```
[]