1120サブツリーの最大平均

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
  double res = 0;

    public double maximumAverageSubtree(TreeNode root) {
        solve(root);
        return res;
    }

    public int[] solve(TreeNode root) {                                                    //少用静态的 不然会保存上次运行的结果
        int arr[] = new int[2];
        arr[0] = 1;
        arr[1] = root.val;
        if (root.left != null) {
            int [] temp = solve(root.left);                                             //用一个temp保存数组 因为用solve(root.left)[0] 会超时 ~~想无
            arr[1] += temp[1];
            arr[0] += temp[0];

        }
        if (root.right != null) {
            int [] temp = solve(root.right);
            arr[1] += temp[1];
            arr[0] += temp[0];

        }
        this.res = Math.max(this.res, arr[1] * 1.0 / arr[0]);
        return arr;

    }
}

問題の説明:テストは間違っていないときleetcode時間のブラシのタイトルは、時には、そこになりますが、著者は間違っているだろう。これは頭痛である
、私は何度か遭遇した問題は、ゆっくりと真実を発見しました。誰もが共有するために、
1.できるだけ多くのグローバル変数を使用しないでください、これはleetcodeについて説明してきた
あなたは、Javaだけでなく、グローバル変数を使用している場合2.を。静的な変更を使用しないために決して忘れないでください、あなたのコード内の静的表示されません、  
あなたが書いた3のコードは本当に問題であり、あなたはそれを見てみましょう。
4.一時的にのみ、これらの問題を発見し、後半に発見された場合は、追加していきます。

おすすめ

転載: www.cnblogs.com/cznczai/p/11183119.html