Python straightforward recursive solution
\nclass Solution:\n    def judgePoint24(self, nums: List[int]) -> bool:\n        if len(nums) == 1:\n            return abs(nums[0] - 24) < 10**-3\n        for 
```\nclass Solution:\n    def judgePoint24(self, nums: List[int]) -> bool:\n        if len(nums) == 1:\n            return abs(nums[0] - 24) < 10**-3\n        for i in range(len(nums)):\n            for j in range(i + 1, len(nums)):\n                add = nums[i] + nums[j]\n                minus = nums[i] - nums[j]\n                time = nums[i] * nums[j]\n                nl = nums[:i] + nums[i + 1:j] + nums[j + 1:]\n                res = self.judgePoint24(nl + [add]) or self.judgePoint24(nl + [minus]) or self.judgePoint24(nl + [time]) or self.judgePoint24(nl + [-minus])\n                if nums[j] != 0 and nums[i] != 0:\n                    divide = nums[i] / nums[j]\n                    res = res or self.judgePoint24(nl + [divide]) or self.judgePoint24(nl + [1/divide])\n                if res:\n                    return True\n        return False\n```\nWe pick every pair of numbers available in current array, try all 4 calculations on the pair, and replace this pair with the result. Then recursively call this function with the new array. The base case is when there is only one number in the array. In this case we check if that number is 24.
[]