找到關於回溯演算法的13篇文章

資料結構中的層序遍歷

Arnab Chakraborty
更新於 2019年8月27日 11:34:58

373 次瀏覽

在本節中,我們將學習二叉搜尋樹的層序遍歷技術。假設我們有一棵這樣的樹:遍歷序列將是這樣的:10, 5, 16, 8, 15, 20, 23演算法levelOrderTraverse(root):開始 定義佇列que來儲存節點 將根節點插入佇列。 當佇列不為空時,執行 專案:=佇列前端的專案 列印專案的value 如果專案的左子節點不為空,則 將專案的左子節點插入佇列 結束 ... 閱讀更多

回溯演算法簡介

karthikeya Boyini
更新於 2019年7月30日 22:30:23

1K+ 次瀏覽

回溯是一種增量式解決問題的演算法技術。它使用遞迴方法來解決問題。可以說,回溯用於查詢解決最佳化問題的所有可能組合。在本節中,我們將介紹哈密頓環、M著色問題、N皇后問題、迷宮老鼠問題、算術謎題、子集和問題、數獨求解演算法、騎士巡遊問題、拔河問題、單詞拆分演算法、透過交換數字獲得最大數問題。

透過交換獲得最大數

karthikeya Boyini
更新於 2020年6月16日 09:39:27

473 次瀏覽

在這個問題中,給定一個正整數字符串,我們必須找到透過交換數字k次到不同位置而得到最大值的排列。我們將透過選擇一個數字並一次將其與後面的數字交換來找到最大數,重複此過程k次。回溯策略在這裡有效,因為當我們找到一個不大於前一個值的數時,我們會回溯到舊值並再次檢查。輸入和輸出輸入:一個多位數。輸入是:129814999 輸出:最大值 ... 閱讀更多

單詞拆分問題

Samual Sam
更新於 2020年6月16日 09:42:44

518 次瀏覽

在這個問題的輸入中,給定一個沒有空格的句子,還提供了一個包含一些有效英文單詞的字典。我們必須找到將句子分解成單個字典單詞的可能方法。我們將嘗試從字串的左邊開始搜尋以找到一個有效的單詞,當找到一個有效的單詞時,我們將搜尋該字串下一部分中的單詞。輸入和輸出輸入:作為字典的一組有效單詞,以及一個不同單詞無空格排列的字串。字典:{mobile, sam, sung, man, mango, icecream, and, go, i, love, ... 閱讀更多

拔河演算法

karthikeya Boyini
更新於 2020年6月16日 09:44:58

720 次瀏覽

在這個問題中,給定一組整數,我們必須將其分成兩部分,使得兩個子集的和的差儘可能小。因此,我們的目標是將兩組實力大致相等的分組劃分,以便參加拔河比賽。如果子集n的大小是偶數,則必須將其分成n/2,但對於n的奇數值,則一個子集的大小必須為(n-1)/2,另一個子集的大小必須為(n+1)/2。輸入和輸出輸入:一組不同的權重。{23, 45, -34, 12, 0, ... 閱讀更多

騎士巡遊問題

Samual Sam
更新於 2020年6月16日 09:51:09

4K+ 次瀏覽

在國際象棋中,我們知道騎士可以以特殊的方式跳躍。它可以在每個方向上水平移動兩個方格和垂直移動一個方格,或者垂直移動兩個方格和水平移動一個方格,因此完整的移動看起來像英文字母“L”。在這個問題中,有一個空的棋盤,以及從棋盤上任何位置出發的騎士,我們的任務是檢查騎士是否可以訪問棋盤上的所有方格。當它可以訪問所有方格時,則放置到達該位置所需的跳躍次數 ... 閱讀更多

數獨求解演算法

Sharon Christine
更新於 2020年6月16日 07:04:00

3K+ 次瀏覽

在本節中,我們將嘗試解決著名的數字迷宮問題數獨。數獨是一個 9 x 9 的數字網格,整個網格也分成 3 x 3 的盒子。有一些規則可以解決數獨。我們必須使用數字 1 到 9 來解決這個問題。在一個行、一列或一個 3 x 3 的盒子中不能重複一個數字。使用回溯演算法,我們將嘗試解決數獨問題。當某個單元格填充了一個數字時,它會檢查它是否有效。當它 ... 閱讀更多

子集和問題

karthikeya Boyini
更新於 2020年6月16日 07:09:28

15K+ 次瀏覽

在這個問題中,給定一個包含一些整數元素的集合。還提供另一個值,我們必須找到給定集合的一個子集,其和與給定的和值相同。這裡使用回溯方法來嘗試選擇一個有效的子集,當一個專案無效時,我們將回溯以獲得前一個子集並新增另一個元素以獲得解決方案。輸入和輸出輸入:此演算法採用一組數字和一個和值。集合:{10, 7, 5, 18, 12, 20, 15} 和值:35 輸出:所有 ... 閱讀更多

求解算術謎題

Sharon Christine
更新於 2020年6月16日 07:16:15

14K+ 次瀏覽

在算術謎題中,一些字母用於為其分配數字。例如,十個不同的字母持有從 0 到 9 的數字值,以正確執行算術運算。給出兩個單詞,以及另一個單詞作為這兩個單詞加法的答案。例如,我們可以說兩個單詞“BASE”和“BALL”,結果是“GAMES”。現在,如果我們嘗試透過它們的符號數字新增 BASE 和 BALL,我們將得到答案 GAMES。注意:最多必須有十個字母,否則無法求解。輸入和輸出輸入:此演算法將 ... 閱讀更多

迷宮老鼠問題

karthikeya Boyini
更新於 2020年6月16日 07:23:16

5K+ 次瀏覽

在這個問題中,給定一個大小為 N x N 的迷宮。源位置和目標位置分別是左上角單元格和右下角單元格。一些單元格是有效的移動單元格,而一些單元格是被阻止的。如果一隻老鼠從起始頂點移動到目標頂點,我們必須找到是否有任何方法可以完成路徑,如果可能,則為老滑鼠記正確的路徑。迷宮使用二元矩陣給出,其中標記為 1 表示有效的路徑,否則對於阻塞單元格則為 0。注意:老鼠可以 ... 閱讀更多

廣告
© . All rights reserved.