[問題] Java 遞迴 recursion/backtracking groupSum

作者: yogaxiao (電腦壞了ˊ_ˋ)   2019-02-22 21:32:33
最近在練習解題, 但對於這題recursion的答案一直不是很理解,
有把解答貼到eclipse用debugger刷了好幾遍但還是不懂它跳的順序...
不知道是否有文字敘述能幫助我理解, 感謝各位
Problem:
Given an array of ints, is it possible to choose a group of some of the ints,
such that the group sums to the given target? This is a classic backtracking
recursion problem. Once you understand the recursive backtracking strategy in
this problem, you can use the same pattern for many problems to search a
space of choices. Rather than looking at the whole array, our convention is
to consider the part of the array starting at index start and continuing to
the end of the array. The caller can specify the whole array simply by
passing start as 0. No loops are needed
作者: ssccg (23)   2019-02-22 21:46:00
這重點在演算法不在程式怎麼跳吧這算很單純的題目,求 nums[0 ~ n] 有沒有辦法加出target以nums[0]來看只有兩種可能,target裡面有加進nums[0] →求 nums[1 ~ n] 有沒有辦法加出 target - nums[0]target裡面沒有加nums[0] →求 nums[1 ~ n] 有沒有辦法加出 target一開始start = 0,每次遞迴就start = start + 1
作者: yogaxiao (電腦壞了ˊ_ˋ)   2019-02-23 02:28:00
因為是自學程式,目前還沒有學過演算法orz有理解你的意思,但不懂為何code是這樣寫,覺得有點抽象搭不起來...
作者: haha02 (來人!上夾棍!)   2019-02-23 11:58:00
可以看一下backtracking的介紹 一般會有 pseudo code幫助理解這題的話 邏輯就是每個元素看一次 取或不取該元素都嘗試看是否有一個情況可以滿足條件(剛好把target扣到0)
作者: kurakidream (隨波逐流)   2019-02-26 09:32:00
Backtracking 畫recursive tree 出來看比較好懂
作者: yogaxiao (電腦壞了ˊ_ˋ)   2019-02-27 22:26:00
謝謝,後來有往recursive tree方向去找資料,畫出來之後有清楚多了,原本是連怎麼畫tree都不知道..

Links booklink

Contact Us: admin [ a t ] ucptt.com