Leetcode Note: Go - Missing Number
Missing Number - LeetCode
https://leetcode.com/problems/missing-number/
- Go 言語で取り組んだメモ
所感
- int 配列の nums が与えられるので、その配列中で飛ばされている数値を return する
- 例えば
[3, 0, 1]
という配列であれば 2 がスキップされているので 2 を return する[0, 1]
という配列であればスキップされている数値はないので順当に 2 を return する
回答
func missingNumber(nums []int) int {
sort.Ints(nums)
for i := 0; i < len(nums); i++ {
if nums[i] != i {
return i
}
}
return len(nums)
}
- nums 配列は 0 から増えていく数値になるので for ループを i で判定できる
- nums に sort してからループして
nums[i] != i
を判定すれば、スキップされた数値を検出できる - ループが問題なく終了したらスキップされた数値は無いということなので
len(nums)
で nums + 1 の数値を return すればよい- nums 配列は 0 からスタートで len は普通に 1 からカウントをスタートするので
len(nums) + 1
とする必要は無い
- nums 配列は 0 からスタートで len は普通に 1 からカウントをスタートするので