var searchInsert = function(nums, target) {
if (nums.indexOf(target) != -1) {
return nums.indexOf(target);
} else {
for (var i = 0; i < nums.length; i++) {
if (nums[i] > target) {
return i;
}
}
}
return nums.length;
};
var searchInsert1 = function(nums, target) {
if (nums.indexOf(target) != -1) { // 数组中存在目标元素
return nums.indexOf(target);
} else { // 数组中不存在目标元素 故需要找到插入的位置
var start = 0, end = nums.length - 1;
if (target < nums[start]) { // 插入位置在数组首部
return 0;
} else if (target > nums[end]) { // 插入位置在数组尾部
return nums.length;
} else { // 插入位置在数组内部
while (start < end - 1) { // 此处可采用普通遍历也可采用二分法遍历查找 但当数组元素相当多的时候 二分法查找效率更高 star与end到最后始终会想差一
var center = parseInt((start + end) / 2);
if (nums[center] > target) {
end = center;
} else if (nums[center] < target) {
start = center;
} else {
return center;
}
}
if (nums[end] >= target) {
return end;
} else {
return end - 1;
}
}
}
};
console.log(searchInsert([1,3,5,6], 2));
console