/**
* 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.一時的にのみ、これらの問題を発見し、後半に発見された場合は、追加していきます。