百度笔试3.29 第三题为啥dfs只过了20%
如题
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static int ans = 0;
public static class TreeNode{
int val = 0;
boolean visited = false;
boolean isroot = true;
ArrayList<TreeNode> son = new ArrayList<>(2);
public TreeNode(){};
public TreeNode(int val){
this.val = val;
this.visited = false;
this.isroot = true;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N;
N = sc.nextInt();
List<TreeNode> list = new ArrayList<>(N);
for (int i = 0; i < N; i++) {
int val = sc.nextInt();
list.add(new TreeNode(val));
}
for (int i = 0; i < N - 1; i++) {
int f = sc.nextInt();
int s = sc.nextInt();
list.get(f-1).son.add(list.get(s-1));
list.get(s-1).isroot = false;
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isroot) {
list.get(i).visited = true;
deepTree(list.get(i), 1);
}
}
System.out.println(ans);
}
public static void deepTree(TreeNode t, int d){
ans = Math.max(ans,d);
for (int i = 0; i < t.son.size(); i++) {
if (t.son.get(i).val > t.val) {
deepTree(t.son.get(i), d + 1);
}
else {
if (!t.son.get(i).visited) {
t.son.get(i).visited = true;
deepTree(t.son.get(i), 1);
}
}
}
}
}
改了半天都只有20%,有没有大佬帮忙看看。 还是说dfs不行。
#百度2020笔试编程题##百度##笔试题目#
美的集团公司福利 783人发布
