[Leetcode] Search Insert Position 寻找插入的位置

来源:互联网 发布:淘宝的神笔在哪里 编辑:程序博客网 时间:2024/05/29 21:34


分类:查找


题目:

寻找一个有序数组中某个数的位置,如果不存在此数,则找到插入的位置。


例子:

[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0


思路:二分法查找,通过枚举所有情况发现,返回low游标即为插入位置。

public class Solution {    public int searchInsert(int[] A, int target) {        int st_idx = 0;        int ed_idx = A.length - 1;                while (st_idx <= ed_idx) {            int mid_idx = st_idx + (ed_idx - st_idx) / 2;            if (target == A[mid_idx]) {                return mid_idx;            } else if (target < A[mid_idx]) {                ed_idx = mid_idx - 1;            } else if (target > A[mid_idx]) {                st_idx = mid_idx + 1;            }        }                return st_idx;    }}


代码:


0 0
原创粉丝点击