您好,登錄后才能下訂單哦!
這篇“java怎么求組合總和”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“java怎么求組合總和”,給大家總結了以下內容,具有一定借鑒價值,內容詳細步驟清晰,細節處理妥當,希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內容吧。
給定一個數組 candidates
和一個目標數 target
,找出 candidates
中所有可以使數字和為 target
的組合。
candidates
中的每個數字在每個組合中只能使用一次。
說明:
所有數字(包括目標數)都是正整數。
解集不能包含重復的組合。
示例 1:
輸入: candidates = , target = , 所求解集為: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ]
示例 2:
輸入: candidates = [2,5,2,1,2], target = 5,
所求解集為:
[
[1,2,2],
[5]
]
組合總和
解析:
這里首先要對數組進行排序,result表示查找的結果,cur表示查找的其中一個組合,先用target減去數組中的值,如果結果等于0,則表示找到,然后加入到result中,如果target大于0,則繼續查找。這里使用了遞歸的思想。如果for循環條件滿足的時候就把當前值加入到cur中,然后遞歸調用,我們知道遞歸的原理就是先調用然后再回退,回退的時候把cur最后一個加入的刪除,然后再判斷。比如數組{1,2,4,6},target為7,當cur包含{1,2,4}的時候正好等于7,然后回退的時候把4移除,然后for循環判斷還是不成立,再把2移除,然后再判斷加入6合適……
Java的基本數據類型分為:1、整數類型,用來表示整數的數據類型。2、浮點類型,用來表示小數的數據類型。3、字符類型,字符類型的關鍵字是“char”。4、布爾類型,是表示邏輯值的基本數據類型。
感謝您的閱讀,希望您對“java怎么求組合總和”這一關鍵問題有了一定的理解,具體使用情況還需要大家自己動手實驗使用過才能領會,快去試試吧,如果想閱讀更多相關知識點的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。