【問題描述】給定一個陣列nums和一個目標值target,計算陣列nums中所有可以使數字和等于目標值target的組合個數,陣列中的每個數只能使用一次。
【輸入形式】輸入由三部分組成。第一行輸入一個整數size,表示陣列大小;第二行輸入size個整數,以空格分隔,表示nums陣列中的size個數;第三行輸入一個整數target。
【輸出形式】輸出一個整數,表示陣列nums中所有數字和等于目標值target的組合個數。
【樣例輸入】5
5 2 1 1 2
5
【樣例輸出】2
【樣例說明】1.所有輸入、輸出都是int型別的正整數。2.重復的組合只計算一次。3.陣列中的每個數只能使用一個。4.上述輸入有{1,2,2}和{5}兩個組合個數,所以輸出2。5.size的范圍是[1,30]。
這個題目我也查了許多資料并且嘗試了很多次了,但還是不得要領。這個遞回到最后要怎么樣才可以除掉重復的組合呢?回傳值該怎么寫呢?
希望各位大佬賜教!!!
uj5u.com熱心網友回復:
先排序,求C(1,n)到C(n,n) 所有組合項,再對這些組合項求和,符合的留下,去重也好辦,依次判斷就是了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235173.html
標籤:C語言
上一篇:c++字串排序
下一篇:菜鳥遇難,尋找大佬!
