Python的最长执行间隔
假设我们有工时列表,这是给定雇员每天工作时数的列表。在此情况下,当且仅当工作小时数(严格)大于8时,才被视为疲倦的一天。一个良好执行的间隔是指天数间隔,在此间隔中,疲倦的天数严格大于该天数不累人的日子。我们必须找到最长的性能间隔的长度。因此,如果输入类似于[9,9,6,0,6,6,9],那么输出将为3。这是因为最长的性能良好间隔是[9,9,6]
为了解决这个问题,我们将遵循以下步骤-
设置temp:=0和ans:=0,绘制一张映射d,设置角点==0
对于0到小时数组大小的范围内的i–1
temp:=temp+1,如果hours[i]>8,否则为-1
如果hours[i]>8,则转角=1
如果temp>0,则ans:=ans和i+1的最大值
如果temp不在映射d中,则d[temp]:=i
如果temp–在图d中为1,则ans:=ans和i–d[temp–1]的最大值
让我们看下面的实现以更好地理解-
示例
class Solution(object): def longestWPI(self, hours): temp = 0 ans = 0 d = {} corner = 0 for i in range(len(hours)): temp += 1 if hours[i]>8 else -1 if hours[i]>8: corner = 1 if temp>0: ans = max(ans,i+1) if temp not in d: d[temp]=i if temp-1 in d: ans = max(ans,i-d[temp-1]) return max(ans,0) ob = Solution()print(ob.longestWPI([9,9,6,0,6,6,9]))
输入值
[9,9,6,0,6,6,9]
输出结果
3