非常暴力的搜尋演算法 深度優先搜尋演算法

2021-10-11 05:29:49 字數 1814 閱讀 1914

第一題

有1-9 9個數,選取3個數組成以下格式:

? + ? = ?

數字只能用一次,不能重複

/**

* 有1-9 9個數,選取3個數組成以下格式:

* ? + ? = ?

* 數字只能用一次,不能重複

*/public

class

demo1}}

}}

第二題

有1-9 9個數,選取3個數組成以下格式:

?? + ?? = ??

數字只能用一次,不能重複

如:12+35=47

public

class

demo2}}

}}}}

}}

第三題

有1-9 9個數,選取3個數組成以下格式:

??? + ??? = ???

數字只能用一次,不能重複

如:124+659=783

public

class

demo3}}

}}}}

}}}}

}

3個題做下來是不是覺得**非常繁瑣和冗餘,這時候就要考慮一些演算法了。下面我就來講講乙個演算法。

又有乙個題,有整數1,2,3.對這三個數進行全排列,輸出所有的情況。

如 123 132 213

231 321 312

一般情況下就可以使用3個for迴圈進行迴圈排列,但很顯然這就顯得比較的笨重,這時候就可以使用深度優先搜尋演算法

/**

* 深度優先搜尋演算法

*/public

class

demo4

system.out.

println

("\n");

}for

(int i =

0; i < max; i++)}

}public

static

void

main

(string[

] args)

}

第二題

就是剛剛的第三題,也可以使用深度優先搜尋演算法

有1-9 9個數,選取3個數組成以下格式:

??? + ??? = ???

數字只能用一次,不能重複

如:124+659=783

/**

* 有1-9 9個數,選取3個數組成以下格式:

* ??? + ??? = ???

* 數字只能用一次,不能重複

* 如:124+659=783

* 使用深度優先搜尋演算法

*/public

class

demo5

//先把所有全排列的結果全部列出來

for(

int i =

0; i < max; i++)}

}public

static

void

main

(string[

] args)

}

經典搜尋演算法 深度優先搜尋 暴力搜尋

訓練題目暴力搜尋題目描述 現有長度為n的數列a和整數m。請編寫乙個程式,判斷a中任意幾個元素相加是否能得到m。a中每個元素只能使用一次。數列a以及用作問題的q個mi由外界輸入,請對每個問題輸出yes或no。輸入 第一行輸入n,第二行輸入代表a的n個整數,第三行輸入q,第四行輸入q個整數mi。輸出 輸...

深度優先搜尋演算法

include include define vertexnum 9 struct node typedef struct node graph struct node head vertexnum 定義圖形結構 int visited vertexnum 頂點陣列 深度優先搜尋 void dfs ...

深度優先搜尋演算法

今天我們來複習一下萬能的搜尋演算法之深度優先搜尋演算法。深度優先搜尋演算法顧名思義就是按照樹的延伸不停的往下搜尋,直到樹的盡頭之後再一步一步的回溯回來。好吧,我們直接問你乙個問題,給你乙個數n,讓你輸出從1到這個樹的全排列,你會怎麼寫,會不會想到去用若干個for迴圈?好吧,你肯定錯了,其實他考的就是...