演算法 Evaluate Division 除法求值

2021-10-14 02:33:20 字數 1596 閱讀 6441

給你乙個變數對陣列 equations 和乙個實數值陣列 values 作為已知條件,其中 equations[i]

=[ai, bi] 和 values[i] 共同表示等式 ai / bi = values[i] 。每個 ai 或 bi 是乙個表示單個變數的字串。

另有一些以陣列 queries 表示的問題,其中 queries[j]

=[cj, dj] 表示第 j 個問題,請你根據已知條件找出 cj / dj =

? 的結果作為答案。

返回 所有問題的答案 。如果存在某個無法確定的答案,則用 -

1.0 替代這個答案。

注意:輸入總是有效的。你可以假設除法運算中不會出現除數為 0 的情況,且不存在任何矛盾的結果。

示例 1:

輸入:equations =[[

"a",

"b"],[

"b",

"c"]

], values =

[2.0

,3.0

], queries =[[

"a",

"c"],[

"b",

"a"],[

"a",

"e"],[

"a",

"a"],[

"x",

"x"]

]輸出:[

6.00000

,0.50000,-

1.00000

,1.00000,-

1.00000

]解釋:

條件:a / b =

2.0, b / c =

3.0問題:a / c =

?, b / a =

?, a / e =

?, a / a =

?, x / x =

?結果:[

6.0,

0.5,

-1.0

,1.0,-

1.0]

class

solution

double

graph =

newdouble

[point_count]

[point_count]

;//記錄點之間的權重

for(

int i =

0;i < point_count;i++)}

for(

int i =

0;i < equations.

size()

;i++

)for

(int k =

0;k < point_count;k++)}

}}double

res =

newdouble

[queries.

size()

];//儲存結果

for(

int i =

0;i < queries.

size()

;i++

) res[i]

= cur;

//賦值

}return res;

//返回結果

}}

演算法基礎( 演算法)

演算法基礎 演算法 hash演算法有兩種,即sha 1和md5演算法這裡先介紹md5演算法.md5產生乙個128位的hash值,在經過一寫初始樹立後,將明文分成了512位的塊,再將每一塊分成16個32位的子塊。演算法的輸出是4個32位的塊,連線起來構成128位的hash值。首先,將訊息填充到比512...

演算法 分治演算法

分治策略主要利用遞迴來解決問題,它包括以下三個步驟 分解 將問題分解為一與原問題類似並且比原問題規模更小的子問題 解決 當分解的子問題足夠小時,直接給出答案,否則用遞迴打方式求解 合併 將子問題的解合成原問題的解 下面考慮乙個簡單的利用分治演算法的歸併排序的例子 問題的形式化描述如下 輸入 a是 乙...

演算法 遞迴演算法

遞迴演算法的概念,就是通過不斷地呼叫自身,最終達到解決問題的目的。遞迴有兩個點需要注意 1.要不斷的呼叫自身 2.這個遞迴要有出口,不能成為死迴圈 看下面的例子。很多介紹遞迴演算法的,都會用遞迴來做乙個題目 計算乙個數的階層。例如 計算5的階層,5 5 x 4 x 3 x 2 x 1 用遞迴來實現 ...