簡體   English   中英

在pickTrees中返回treeHelper方法時應該傳遞什么作為“樹”?

[英]What should be passed as "tree" when returning the treeHelper method in pickTrees?

問題來了:你用木頭建造房屋,你需要來自附近森林的材料。 但是,您想避免砍伐森林,因此您決定每砍伐一棵樹,就不要管它的鄰居,讓森林有時間恢復。 但是,您仍然需要盡可能多的木材,因此您必須小心選擇要砍伐的樹木。 編寫 picktrees,它接收 n 棵樹 arr 的數組,其中 arr[i] 表示通過砍伐樹 i 可以收獲多少木材。 它應該返回你可以收獲的最大木材量,同時遵循跳過鄰居的規則:

到目前為止,這是我的代碼

public static int pickTrees(int[] arr) {
    return treeHelper(arr, ?);
}

public static int treeHelper(int[] arr, int tree){
    if (arr.length < tree){
        return 0;
    }
    if ((arr.length)-1 == tree){
        return 1;
    }
    int sum = arr[tree]+treeHelper(arr, tree+2);

    int otherSum = arr[tree+1]+treeHelper(arr, tree+3);

    return Math.max(sum, otherSum);

}

樹應該是被“削減”並添加到變量 sum 和其他 sum 的數組的索引。 因為我在 treeHelper 方法中定義它,所以在 pickTrees 方法中使用它時,我不確定應該將什么作為樹傳遞。 當我使用 arr.length 時,我得到了一個越界錯誤,這是有道理的,因為基本情況永遠不會是真的/達到。

嘗試通過 Set of Integer PickTrees 作為第二個參數 treeHelper。

嘗試從這里繼續,首先嘗試理解 treeHelper 返回值的含義。

(我的回答是提示而不是完整的解決方案,因為我認為邊做邊學是最好的學習方式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM