博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
刷题总结01
阅读量:3952 次
发布时间:2019-05-24

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

Convert the department list to preorder traversal of the name of department tree

链接:https://www.nowcoder.com/questionTerminal/86dc86da50424b47b25ced3e9f97b056

来源:牛客网

输入

[[“d1”, “d0”, “IT”], [“d2”, “d0”, “RD”], [“d0”, “”, “The Company”], [“d3”, “d0”, “HR”]]
输出
[“The Company”,“HR”,“IT”,“RD”]
说明
On each level of the department tree, departments are listed in alphabetical order of the name

import java.util.*;public class Solution {
/** * Convert the department list to preorder traversal of the department tree * @param departments string字符串二维数组 [["id1", "parentId", "name"]...], there's only one root department with empty parent id. * @return string字符串一维数组 */ LinkedList
res = new LinkedList<>(); public String[] listToTree (String[][] departments) {
// write code here Map
map = new HashMap<>(); int n = departments.length; Node root=null; for(int i=0;i
arr1[2].compareTo(arr2[2])); for(String[] dep: departments) {
Node parent = map.get(dep[1]); if(parent==null) continue; Node self = map.get(dep[0]); parent.sons.add(self); } dfs(map,root); return res.toArray(new String[0]); } void dfs(Map
map,Node root) {
if(root ==null) return; res.add(root.name); for(Node child: root.sons) {
dfs(map,child); } } static class Node{
String id; String parentId; String name; List
sons = new LinkedList<>(); Node(String[] x) {
id = x[0]; parentId = x[1]; name = x[2]; } }}

转载地址:http://puyzi.baihongyu.com/

你可能感兴趣的文章
FMDB介绍以及在 swift 中的数据库操作
查看>>
iOS运行时机制(附Demo演练)
查看>>
宽字符串输出问题
查看>>
将整数转换为宽字符串
查看>>
在类中定义enum实现整数常量功能
查看>>
suse11通过安装最新内核可以上网的经验
查看>>
SUSE静态配置IP成功上网
查看>>
通过sleep让程序等待外部条件改变
查看>>
通过等待键盘输入让程序等待外部条件改变
查看>>
通过限制循环次数来避免死循环
查看>>
ADO连接字符串
查看>>
字符数组的位置决定程序能否成功执行--不明白
查看>>
拷贝代码时没有仔细检查,导致误修改了函数参数
查看>>
MySQL批量导入数据SQL语句(CSV数据文件格式)
查看>>
ADO连接Oracle
查看>>
遍历Windows系统中所有进程的名字(*.exe)
查看>>
进程看门狗
查看>>
线程看门狗
查看>>
调试代码的宏定义
查看>>
创建、重命名文件
查看>>