leetcode 679 24點遊戲(回溯)

2021-09-26 09:45:48 字數 1228 閱讀 6813

你有 4 張寫有 1 到 9 數字的牌。你需要判斷是否能通過 *,/,+,-,(,) 的運算得到 24。

示例 1:

輸入: [4, 1, 8, 7]

輸出: true

解釋: (8-4) * (7-1) = 24

示例 2:

輸入: [1, 2, 1, 2]

輸出: false

注意:

除法運算子 / 表示實數除法,而不是整數除法。例如 4 / (1 - 2/3) = 12 。

每個運算子對兩個數進行運算。特別是我們不能用 - 作為一元運算子。例如,[1, 1, 1, 1] 作為輸入時,表示式 -1 - 1 - 1 - 1 是不允許的。

你不能將數字連線在一起。例如,輸入為 [1, 2, 1, 2] 時,不能寫成 12 + 12 。

class

solution

void

helper

(vector<

double

>

& nums,

double eps,

bool

& res)

for(

int i =

0; i < nums.

size()

;++i);if

(p > eps) t.

push_back

(q / p);if

(q > eps) t.

push_back

(p / q)

; nums.

erase

(nums.

begin()

+ i)

; nums.

erase

(nums.

begin()

+ j)

;for

(double d : t)

nums.

insert

(nums.

begin()

+ j, q)

;// 回溯過程恢復現場

nums.

insert

(nums.

begin()

+ i, p);}

}}};

力扣 679 24點遊戲

題目描述 你有 4 張寫有 1 到 9 數字的牌。你需要判斷是否能通過 的運算得到 24。示例 1 輸入 4,1,8,7 輸出 true 解釋 8 4 7 1 24 示例 2 輸入 1,2,1,2 輸出 false 注意 除法運算子 表示實數除法,而不是整數除法。例如 4 1 2 3 12 每個運算...

遊LeetCode一月之閒談

今年的2月比往常更長,不是因為比往年多了一天,而是被病毒隔離在家的日子顯得十分漫長。如果再不給自己找點事情做的話,且不論身體方面的健康狀況,精神方面可能也會有些隱憂。做為一名工程師,適時地讀上幾本平日可能沒時間閱讀的好書,應當是不錯的選項。而除此之外,也可以做點有趣的演算法題目以做消遣。當今,lee...

學渣帶你刷Leetcode292 Nim 遊戲

你和你的朋友,兩個人一起玩 nim 遊戲 桌子上有一堆石頭,每次你們輪流拿掉 1 3 塊石頭。拿掉最後一塊石頭的人就是獲勝者。你作為先手。你們是聰明人,每一步都是最優解。編寫乙個函式,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。示例 輸入 4 輸出 false 解釋 如果堆中有 4 塊石頭,那麼...