Leetcode刷题记(11)—搜索插入位置
题目要求:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
题解:暴力求解&&二分查找
最简单的想法就是暴力求解了,循环一次判断输出。
给出排序数组,就是疯狂在暗示我们使用“二分法”!!!
二分法中对于中位数mid的定义:直接使用mid=(left+right)/2容易产生溢出的问题,使用无符号右移法:mid = (left+right)>>>1;
本题的思路很清晰:
(1)判断目标值是否大于数组中最后一个元素,如果是直接输出数组长度;否则转2
(2)使用二分查找法,每次只查找一半元素,最后返回left索引值。