zl程序教程

您现在的位置是:首页 >  其他

当前栏目

LeetCode-35. 搜索插入位置(Golang实现)

LeetCode搜索Golang 实现 插入 位置 35
2023-09-27 14:28:25 时间

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 = 0
    for 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 := 0
    right := len(nums)
    for left < right {
        middle := (right + left) / 2
        if 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】

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)