搜索插入位置
【摘要】 35. 搜索插入位置链接给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例1:代码语言:txt复制输入: [1,3,5,6], 5输出: 2示例 2:代码语言:txt复制输入: [1,3,5,6], 2输出: 1示例3:代码语言:txt复制输入: [1,3,5,6], 7输出: 4示例4:代...
35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例3:
输入: [1,3,5,6], 7
输出: 4
示例4:
输入: [1,3,5,6], 0
输出: 0
func searchInsert(nums []int, target int) int {
// 没有把i放入for语句中
// 是为了兼容,len(nums) == 0 和 target > nums[len(nums)-1]两种情况
i := 0
for i < len(nums) && nums[i] <= target {
// 相等的时候,直接返回
if nums[i] == target {
return i
}
i++
}
return i
}
// 二分查找
func searchInsert1(nums []int, target int) int {
left,right := 0,len(nums)
for left < right {
middle := (right+left) / 2
if nums[middle] >=target {
right = middle
}else{
left = middle + 1
}
}
return left
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)