描述
在LOL中,有一個叫做“提莫”的英雄,他的攻擊能夠讓敵人艾希進入中毒狀態,現在給定提莫的攻擊時間點的升序序列,以及每次提莫攻擊時的中毒持續時間,輸出總的艾希中毒態的時間,
假定提莫在每一個具體的時間片一開始就發動攻擊,而且艾希立刻中毒,
說明
- 假定給定時間序列的長度不會超過10000,
- 假定提莫攻擊的時間序列和他的中毒持續時間都是非負整數,不會超過10000000,
樣例
- 樣例 1:
樣例: [1,4], 2
輸出: 4
解釋: 在第1秒開頭, 提莫攻擊了艾希,艾希立刻中毒,
這次中毒持續2秒,直到第2秒末尾,
在第4秒開頭, 提莫又攻擊了艾希, 又讓艾希中毒了2秒,.
所以最終結果是4.
- 樣例 2:
輸入: [1,2], 2
輸出: 3
解釋: 在1秒鐘開頭, 提莫攻擊了艾希,艾希立刻中毒,
這次中毒持續2秒,直到第2秒末尾,
然而,第2秒初,提莫又攻擊了艾希,而艾希還處在中毒態,
由于中毒態不會疊加, 所以中毒態會在3秒末停止,
所以,最侄訓傳3,
挑戰
顯然你可以直接 return a + b,但是你是否可以挑戰一下不這樣做?(不使用++等算數運算子)
決議
findPoisonedDuration = function (timeSeries, duration) {
if (timeSeries == null || timeSeries.length == 0 || duration == 0) {
return 0;
}
result = 0, start = timeSeries[0], end = timeSeries[0] + duration;
for (i = 1; i < timeSeries.length; i++) {
if (timeSeries[i] > end) {
result += end - start;
start = timeSeries[i];
}
end = timeSeries[i] + duration;
}
result += end - start;
return result;
}
運行結果


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/86390.html
標籤:其他
上一篇:C#語言列印九九乘法表
