LeetCode题号:35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
解题思路
1、暴力破解法
2、借助游标法
3、二分法
代码
//暴力破解
func SearchInsert(nums []int, target int) int {for i := 0; i < len(nums); i++ {if target <= nums[i] {return i}}return len(nums)
}
//借助游标法
func SearchInsert(nums []int, target int) int {var left = 0for i := 0; i < len(nums); i++ {if nums[i] < target {left++} else {return left}}return left + 1
}
//二分法
func searchInsert(nums []int, target int) int {left := 0right := len(nums)for left < right {middle := (right + left) / 2if nums[middle] >= target {right = middle} else {left = middle + 1}}return left
}
往期回顾:
【1】LeetCode-876. 链表的中间结点(Goland实现)
【2】LeetCode-剑指 Offer 22. 链表中倒数第k个节点(Goland实现)
【3】LeetCode-21. 合并两个有序链表(Goland实现)
?如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ
?如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(?′?‵?)づ╭?~
?对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】
?鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)