Leetcode Note: Go - Third Maximum Number

Third Maximum Number - LeetCode
https://leetcode.com/problems/third-maximum-number/

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

所感

  • 数値配列から3番めに数値が大きい要素を int で return する

回答

O(1) Space [Golang, Go] - LeetCode Discuss
https://leetcode.com/problems/third-maximum-number/discuss/753661/O(1)-Space-Golang-Go

func thirdMax(nums []int) int {
	max, second, third := math.MinInt64, math.MinInt64, math.MinInt64

	for _, v := range nums {
		if v == max || v == second || v == third {
			continue
		}

		switch {
		case v > max:
			max, second, third = v, max, second
		case v > second:
			second, third = v, second
		case v > third:
			third = v
		}
	}

	if third == math.MinInt64 {
		return max
	}

	return third
}