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
二分搜索即可。直接上代码
<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>
版权声明:本文为博主原创文章,转载注明出处
[LeetCode][Java] Search Insert Position
原文:http://blog.csdn.net/evan123mg/article/details/46852199