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 問題だが、結構スマートに実装できたのではないだろうか!