zoukankan      html  css  js  c++  java
  • 一道关于图的面试题

    最近一直在做一个build system的依赖管理,感觉其中某些内容可以抽取出来,作为一道很不错的面试题:

    假设你在同时编译n个项目,他们相互之间有依赖关系,比如:

    现在,让你写一个算法,把每个项目的依赖拍平:即把其所有间接依赖+直接依赖的项目都输出。
    比如上面这个图的输出就为:
    a: b c d e f g
    b: c d
    c: d
    d:
    e: f g
    f: g
    g:
     
    然后,还可以有后续的问题:
    1. 如果有环,如何判断并输出环?
    2. 如果这些项目有可能有一些外部的依赖,请改变你的算法以适合这种情况。
    好,面试到此结束。
     
    下面是个扩展题,没在工作中做到,但后来想了下,觉得挺有意思:
    1. 为了提高编译速度,现在需要找出那些可以并行编译的项目,请改进算法实现之。
  • 相关阅读:
    Android KeyCode列表
    贪吃蛇游戏
    二叉树的深度
    二叉树的层次遍历
    二叉树的后序遍历
    二叉树的中序遍历
    《算法》第四版随笔
    踏上计算机网络学习之路
    二叉树的前序遍历
    登上刷题之路
  • 原文地址:https://www.cnblogs.com/baiyanhuang/p/2807877.html
Copyright © 2011-2022 走看看