题目
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 2
输出: 1
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例 3:
输入: [1,3,5,6], 7
输出: 4
示例 4:
输入: [1,3,5,6], 0
输出: 0
解题思路
1.先判断目标值是否在数组中,
2,如果不在,由于数组是一个排序数组,所以可以直接比较目标值target和数组第一个值的最后一个值的大小,并返回数组索引
3.目标值target在数组中,用二分法来进行查找,比直接遍历数组所有元素更加节省内存空间
C++代码
#include <iostream>
using namespace std;
int searchInsert(int* nums, int length, int target){
/*
s使用二分查找来对数组进行遍历
*/
//定义两个值
int i =