Leetcode Note: Go - Search Insert Position
Search Insert Position - LeetCode
https://leetcode.com/problems/search-insert-position/
- Go 言語で取り組んだメモ
所感
- 実装すること
- for loop を回して一致する要素があれば index を return
- 一致する要素がなければ insert する index を return
- insert する index の return が曲者
- と思ったが、ソート済みの配列が input されているので、シンプルにループ毎に大きさを比較すれば実装できそう
実装準備
func assert(a interface{}, b interface{}) bool {
if a == b {
return true
}
return false
}
func searchInsert(nums []int, target int) int {
return 0
}
func main() {
nums := []int{1,3,5,6}
target := 7
fmt.Println(searchInsert(nums, target))
}
回答
func searchInsert(nums []int, target int) int {
for i := 0; i < len(nums); i++ {
if nums[i] == target {
return i
}
if nums[i] > target {
return i
}
}
return len(nums)
}
- ちょっとエラーハンドリングというか、エッジケースを想定しきれているか不安だったが Pass できた
- 難易度 Easy 問題だが、結構スマートに実装できたのではないだろうか!