題目鏈接
題目:
分析:
- 如果兩次攻擊的時間差是>=中毒的持續時間duration, 那么第一次攻擊的中毒時間就是duration
- 如果兩次攻擊的時間差是< 中毒的持續時間duration, 那么第一次攻擊的持續時間就是這個時間差
- 假設攻擊了n次, 那么我們從第一次攻擊開始計算時間差, 那么當我們算到最后一次時, 計算的是前面的n-1次的時間, 那么最后一次攻擊, 中毒時間肯定是duration, 所以我們計算結果時, 要加上duration
代碼:
class Solution {public int findPoisonedDuration(int[] timeSeries, int duration) {int ret = 0;for(int i = 1; i < timeSeries.length; i++){if(timeSeries[i] - timeSeries[i-1] >= duration){ret += duration;}else{ret += timeSeries[i] - timeSeries[i-1];}}return ret + duration;}
}