题目:
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6]
, 5 → 2
[1,3,5,6]
, 2 → 1
[1,3,5,6]
, 7 → 4
[1,3,5,6]
, 0 → 0
题意:
给定一个有序数组和一个目标值。假设在数组中找到该目标值。就返回这个目标值的位置标号。假设没有找到,就返回该目标值插入该数组中时的位置标号。
你能够如果该数组中没有反复元素。
以下是一些列子:
[1,3,5,6]
,
5 → 2
[1,3,5,6]
,
2 → 1
[1,3,5,6]
,
7 → 4
[1,3,5,6]
,
0 → 0
算法分析:
二分搜索就可以。
直接上代码
AC代码:
<span style="font-size:12px;">public class Solution { public int searchInsert(int[] A, int target) { int i = 0; int j = A.length - 1; while (i <= j) { int mid = (int)((i + j)/2); if (A[mid] == target) return mid; else if (A[mid] > target) j = mid - 1; else i = mid + 1; } return i; } }</span>