您的位置:首页 > 其它

LeetCode 35. Search Insert Position(搜索插入点)

2016-05-20 10:37 597 查看
原题网址:https://leetcode.com/problems/search-insert-position/

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
方法:二分法查找。

public class Solution {
public int searchInsert(int[] nums, int target) {
int i=0, j=nums.length-1;
while (i<=j) {
int m = (i+j)/2;
if (target == nums[m]) return m;
if (target < nums[m]) {
j = m - 1;
} else {
i = m + 1;
}
}
return i;
}
}


二分法查找其实i<=j或者i<j作为条件都是可以的,不过前者用得比较顺。

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