昨晚通宵發版,導致今天狀態很差。思路有點亂……
這個題目來自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 從 ...