问题:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
算法:
这道题很显然,可以使用二分查找来解。只不过,二分查找的找不到该怎么办?
实现:
class Solution {
public int searchInsert(int[] nums, int target) {
int start = 0,end = nums.length-1,mid=(start+end)/2;
while(start <= end){
mid = (start+end)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]<target)
start = mid+1;
else
end = mid -1;
}
return (nums[mid]<target)?mid+1:mid;
}
}
感想:
这是我自己独立做出的第四道题,虽然简单,对我这个算法菜鸟来说不得不说是个不小的进步。撸起袖子加油干。要做大一天不刷题浑身不舒服,一天不刷题睡不着觉!!!!