January 23, 2019
https://leetcode-cn.com/problems/search-insert-position/
使用语言:Golang
func searchInsert(nums []int, target int) int {
length := len(nums)
middleIndex := length / 2
middle := nums[length / 2]
if middle == target {
return middleIndex
}
if middle > target {
if length == 1 {
return 0
}
return searchInsert(nums[:middleIndex], target)
} else {
if length == 1 {
return 1
}
return middleIndex + searchInsert(nums[middleIndex:], target)
}
}
这道题目很简单,有序数组中查找插入位置,最简单的办法就是从头到尾遍历一遍,挨个比大小找到其合适的位置,想要更快一点的话可以用二分查找。
我用递归 + 二分查找解决了这个问题。
先看子问题,即比较当前元素和目标元素的大小。比目标元素大,目标元素在当前元素之前。比目标元素小,目标元素在当前元素之后。
再看边界,当数组的长度为 1 时,比较完大小之后立刻可以得到目标元素位置。
痕迹
没有过去,就没法认定现在的自己