Leetcode 679 Solution
This article provides solution to leetcode question 679 (24-game)
Access this page by simply typing in "lcs 679" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/24-game
Solution
class Solution:
def judgePoint24(self, cards: List[int]) -> bool:
def dfs(nums):
if len(nums) == 1:
return abs(nums[0] - 24) < 0.0000001
for i, j in itertools.combinations(range(len(nums)), 2):
new_nums = [num for k, num in enumerate(nums) if k != i and k != j]
num1 = nums[i]
num2 = nums[j]
if dfs(new_nums + [num1 + num2]):
return True
if dfs(new_nums + [num1 - num2]):
return True
if dfs(new_nums + [num2 - num1]):
return True
if dfs(new_nums + [num1 * num2]):
return True
if num2 != 0 and dfs(new_nums + [num1 / num2]):
return True
if num1 != 0 and dfs(new_nums + [num2 / num1]):
return True
return False
return dfs(cards)