您的位置:首页 > 其它

Leetcode: Search Insert Position

2014-05-10 02:33 363 查看
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


很简单的题目,一次过,注意为数组空的时候,应返回0而非null

public class Solution {
public int searchInsert(int[] A, int target) {
int i;
if (A.length == 0) return 0;
for (i=0; i<A.length; i++){
if (target <= A[i]){
return i;
}
}
return A.length;
}
}


binary search: 就是当循环结束时,如果没有找到目标元素,那么l一定停在恰好比目标大的index上,r一定停在恰好比目标小的index上

public int searchInsert(int[] A, int target) {
if(A == null || A.length == 0)
{
return 0;
}
int l = 0;
int r = A.length-1;
while(l<=r)
{
int mid = (l+r)/2;
if(A[mid]==target)
return mid;
if(A[mid]<target)
l = mid+1;
else
r = mid-1;
}
return l;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: