📑 题目:35. 搜索插入位置
题目大意
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
解题思路
- 给出一个已经从小到大排序后的数组,要求在数组中找到插入 target 元素的位置。
- 这一题是经典的二分搜索的变种题,在有序数组中找到最后一个比 target 小的元素。
代码
package leetcode
func searchInsert(nums []int, target int) int {
low, high := 0, len(nums)-1
for low <= high {
mid := low + (high-low)>>1
if nums[mid] >= target {
high = mid - 1
} else {
if (mid == len(nums)-1) || (nums[mid+1] >= target) {
return mid + 1
}
low = mid + 1
}
}
return 0
}
```[TOC]
# 📑 题目:35. 搜索插入位置
简单 🕓 2021-05-12 📈 频次: 2
**
[🚀 本题 LeetCode 传送门](https://leetcode-cn.com/problems/search-insert-position/)
**题目大意**
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
**解题思路**
- 给出一个已经从小到大排序后的数组,要求在数组中找到插入 target 元素的位置。
- 这一题是经典的二分搜索的变种题,在有序数组中找到最后一个比 target 小的元素。
**代码**
package leetcode
func searchInsert(nums []int, target int) int { low, high := 0, len(nums)-1 for low <= high { mid := low + (high-low)>>1 if nums[mid] >= target { high = mid - 1 } else { if (mid == len(nums)-1) || (nums[mid+1] >= target) { return mid + 1 } low = mid + 1 } } return 0 } ```