0
所以,我們都知道這個遞歸函數的教師是如何工作的:你怎樣才能恢復不可協調的值?
public static int fac(int number) {
return (number > 1) ? number * fac(number - 1) : number;
}
如果調用此5作爲參數,它會評估爲:
return 5 * 4 * 3 * 2 * 1
到目前爲止,一切都很好。但是如果我想要返回的值不能被連接起來呢?例如,如果我想返回一些列表:
public static List<Integer> getSubarraysOf(List<Integer> array) {
if (array.size() <= 1) {
return array;
}
return array + getSubarraysOf(array.subList(1,array.size() - 1));
}
當然,這是行不通的!我可以想象這個工作的唯一方法是引用全局變量(即包含列表的列表),將結果列表添加到該列表,或者將結果列表引入參數。這兩個解決方案都有味道,我想知道有沒有人有比我更聰明的解決方案。
我想我想要的只是不可能的,返回多個對象。我本來想要一個包含所有子數組的List,所以我可以單獨處理每個子數組。 – AdHominem
我這麼認爲,只有外部列表<列表> –
Batiaev