演算法 函式的獨佔時間

2021-10-24 07:26:44 字數 1038 閱讀 1619

昨晚通宵發版,導致今天狀態很差。思路有點亂……

這個題目來自leetcode 636. 函式的獨佔時間

題目不複製了

題解:理解題意:函式的呼叫,代表函式一定是閉合的。也就是說,子函式結束之前,母函式一定是沒有結束的。母函式的結束一定在子函式結束之後。

這個解法,巧妙的地方在於casttime的運用。這樣,棧頂元素執行的時間,就相當於 當前時間 - 已結束程序消耗的時間 - 該程序開始的時間。

當前結束程序執行的時間,相當於當前程序開始執行的時間 – 一直到當前時間。

class

solution

:def

exclusivetime

(self, n:

int, logs: list[

str])-

> list[

int]

: res =[0

]*nstack =

for log in logs:

id,flag,time = log.split(

':')

if flag==

'end'

: casttime =

0while stack and stack[-1

][0]

=='casttime'

: _,t = stack.pop(

) casttime+=t

curid,curtime = stack.pop(

) res[curid]

+=int

(time)

- casttime -curtime +1(

'casttime'

,int

(time)

-curtime+1)

)else:(

int(id)

,int

(time)))

return res

函式的獨佔時間 python

題目描述 給出乙個非搶占單執行緒cpu的n個函式執行日誌,找到函式的獨佔時間。每個函式都有乙個唯一的 id,從0到n 1,函式可能會遞迴呼叫或者被其他函式呼叫。日誌是具有以下格式的字串 function id start or end timestamp。例如 0 start 0 表示函式 0 從 ...

636 函式的獨佔時間

題目 給出乙個非搶占單執行緒cpu的 n 個函式執行日誌,找到函式的獨佔時間。每個函式都有乙個唯一的 id,從 0 到 n 1,函式可能會遞迴呼叫或者被其他函式呼叫。日誌是具有以下格式的字串 function id start or end timestamp。例如 0 start 0 表示函式 0...

LeetCode 函式的獨佔時間(輔助stack)

給出乙個非搶占單執行緒cpu的 n 個函式執行日誌,找到函式的獨佔時間。每個函式都有乙個唯一的 id,從 0 到 n 1,函式可能會遞迴呼叫或者被其他函式呼叫。日誌是具有以下格式的字串 function id start or end timestamp。例如 0 start 0 表示函式 0 從 ...