题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例:
代码:
- 解法一
class Solution {
public int searchInsert(int[] nums, int target) {
int index=-1;
if(nums[nums.length-1]<target){
return(nums.length);
}
for(int i=0;i<nums.length;i++){
if(nums[i]==target){
return(i);
}else if(nums[i]>target){
return(i);
}
}
return(index);
}
}
- 别人的代码
class Solution {
public int searchInsert(int[] nums, int target) {
int begin = 0, end = nums.length - 1, mid = 0;
while (begin <= end) {
mid = (begin + end) >>> 1;
if (nums[mid] < target) {
begin = mid + 1;
}else if(nums[mid] > target){
end = mid - 1;
}else{
return mid;
}
}if (begin == 0 || begin == nums.length) {
return begin;
}else {
return ((begin + end) >>> 1) + 1;
}
}
}