函数的独占时间

函数的独占时间

有一个 单线程 CPU 正在运行一个含有 n 道函数的程序。每道函数都有一个位于  0 和 n-1 之间的唯一标识符。

函数调用 存储在一个 调用栈 上 :当一个函数调用开始时,它的标识符将会推入栈中。而当一个函数调用结束时,它的标识符将会从栈中弹出。标识符位于栈顶的函数是 当前正在执行的函数 。每当一个函数开始或者结束时,将会记录一条日志,包括函数标识符、是开始还是结束、以及相应的时间戳。

javascript var exclusiveTime = function (n, logs) { const len = logs.length const res = new Array(n).fill(0) const stack = [] let arr = logs[0].split(':') let prev = arr[2] let i = 1 stack[0] = arr[2] while (i < len) { arr = logs[i].split(':') if (arr[1] === 'start') { res[stack[stack.length - 1]] += arr[2] - prev stack.push(arr[0]) prev = arr[2]//这里的prev是为了下一次出栈 } else { const tem = stack.pop() res[tem] += arr[2] - prev + 1 prev = arr[2] - 0 + 1 // 这里的prev是为了下一次入栈执行的prev } i++ } return res }


版权声明:本文为formylovetm原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。