版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao__jia__jia/article/details/83005242
求树的高度
现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
输入描述:
输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,
下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号
输出描述:
输出树的高度,为一个整数
示例1
输入
5
0 1
0 2
1 3
1 4
输出
3
这是秋招网友的解题思路:
用数组arr[][],前一个数作为index,后一个数是加一到后面。例如: arr[0][0] = 1, arr[0][1] = 2;
code:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arr = new int[n][2];
for(int i= 0; i < n - 1; i++) {
int a = in.nextInt();
int b = in.nextInt();
arr[a][0] = 1;
arr[a][1] = b;
}
System.out.println(getDepth(arr));
}
public static int getDepth(int[][] arr) {
int[] depth = new int[1000];
Arrays.fill(depth, 0);
for(int i = 0; i < 4; i++) {
if(depth[arr[i][0]] == 0) {
depth[arr[i][0]] = 1;
}
depth[arr[i][1]] = depth[arr[i][0]] + 1;
}
int max = Integer.MIN_VALUE;
for(int num : depth) {
max = num > max ? num : max;
}
return max;
}
}
根据算得的平均分数从高到低输出,平均分数四舍五入求整数,平均分数相同,按输入顺序输出。
输入:
Bob 95 95
Ally 100 90 95
Li 92 86
Cat 98 99
Wang 99
输出:
Cat 99
Wang 99
Bob 95
Ally 95
Li 89
code:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Node> list= new ArrayList<Node>();
while(in.hasNext()) {
String temp = in.nextLine();
String t[] = temp.split(" ");
int len = t.length;
double sum = 0;
for(int i = 0; i < len; i++) {
if(i == 0){
}else {
sum += Integer.parseInt(t[i]);
}
}
sum = sum *1.0/ (len - 1);
if((int)sum+1 == (int)(sum + 0.5)){
sum += 1;
}
int k = (int)sum;
Node node = new Node(t[0], new Integer(k));
list.add(node);
}
int len1 = list.size();
for(int i = 0; i < len1 -1; i++) {
for(int j = i+1; j < len1; j++) {
int aa = list.get(i).b;
int bb = list.get(j).b;
if(aa < bb){
Node aNode = list.get(i);
list.add(i, list.get(j));
list.remove(i+1);
list.add(j,aNode);
list.remove(j+1);
}
}
}
int len = list.size();
for(int i = 0; i < len; i++){
System.out.println(list.get(i).a + " " + list.get(i).b);
}
}
}
class Node {
public Node(String a, Integer b) {
this.a = a;
this.b = b;
}
String a;
Integer b;
}