博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的高度
阅读量:7086 次
发布时间:2019-06-28

本文共 1637 字,大约阅读时间需要 5 分钟。

题目描述

现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

输入描述:

输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号

输出描述:

输出树的高度,为一个整数
示例1

输入

50 10 21 31 4

输出

3

 

1 var readline = require('readline'); 2  3 rl = readline.createInterface({ 4     input: process.stdin, 5     output: process.stdout 6 }); 7  8 var inputs = []; 9 var num = 0;10 rl.on('line', function(data) {11     if(num == 0){12         num = Number(data.trim());13         if (num == 1) {14             console.log(1);15         }16         num = num - 1;17     } else {18         inputs.push(data.trim());19         if (num == inputs.length) {20             // 处理21             var result = deal(inputs);22 23             // 输出结果24             console.log(result);25 26             // 清027             inputs.length = 0;  //不可改动28             num = 0;    //不可改动29         }30     }31 });32 33 34 function deal(inputs) {35     var result = new Array(1000).fill(0);36     var cnt = new Array(1000).fill(0);37     var cut = [];38     for (var i = 0; i < num; i++) {    39         var arr = inputs[i].split(' ');40         var p = arr[0];41         var ch = arr[1];42         cnt[p]++;43         if (cnt[p] > 2) {44             result[ch] = -1000;45             continue;46         }47         result[ch] = result[p] + 1;48     }49     result = Math.max(...result);50     return result + 1;51 }

前面一坨主要是node的输入,功能实现在deal函数中。

思路: 子节点的高度等于父节点高度 + 1;

坑: 这道题题目说的是二叉树,但是测试用例里面有多叉,要手动过滤多叉(我这里用的纯暴力,没有过滤,只是把高度赋值为一个很小的值 -1000)。提交多次之后发现一组数据过不了,然后翻看大佬们的评论,才发现测试里面有多叉。

emmm.....深刻体会到node.js的输入在A题的时候是多么的麻烦!

转载于:https://www.cnblogs.com/zou20134585/p/8657920.html

你可能感兴趣的文章
javascript继承
查看>>
待处理
查看>>
linux下在root用户登陆状态下,以指定用户运行脚本程序实现方式
查看>>
FB面经Prepare: Merge K sorted Array
查看>>
模拟链表
查看>>
C#中使用SendMessage在进程间传递数据的实例
查看>>
ADT Android Development Tools
查看>>
OpenGL ES 简单教程
查看>>
nvidia显卡驱动卸载和卸载后的问题
查看>>
Java集合源码分析(二)Linkedlist
查看>>
SpringBoot四大神器之Actuator
查看>>
html复习之标签整理
查看>>
Yii2 使用 faker 生成假数据(转)
查看>>
Consul安装使用
查看>>
tomcat事件处理机制
查看>>
JS BUG 传递数字过大,数据值会变化
查看>>
橡皮筋进度条ElasticProgressBar
查看>>
spring boot引入json,jsonobject,需要指定jdk15
查看>>
企业架构 - 涉众管理(Stakeholder Management)
查看>>
Ubuntu11.10 解决rar文件解压错误
查看>>