Leetcode Note: Go - Teemo Attacking

Teemo Attacking - LeetCode
https://leetcode.com/problems/teemo-attacking/

  • Go 言語で取り組んだメモ

所感

  • 毒ダメージの期間を計測する
  • timeSeries int 配列は毒になるタイミング
  • duration int は毒が継続する秒数
  • 相手が毒状態になっている期間を計算して int で return する

回答

Teemo Attacking - LeetCode
https://leetcode.com/problems/teemo-attacking/solution/

[Go] One Pass - LeetCode Discuss
https://leetcode.com/problems/teemo-attacking/discuss/568069/Go-One-Pass

func findPoisonedDuration(timeSeries []int, duration int) int {
	n := len(timeSeries)
	if n == 0 {
		return 0
	}

	total := 0
	for i := 1; i < n; i++ {
		if timeSeries[i-1]+duration <= timeSeries[i] {
			total += duration
		} else {
			total += timeSeries[i] - timeSeries[i-1]
		}
	}
	return total + duration
}