35. Search Insert Position

Description

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.

Example 1:

Input: [1,3,5,6], 5
Output: 2

Example 2:

Input: [1,3,5,6], 2
Output: 1

Example 3:

Input: [1,3,5,6], 7
Output: 4

Example 1:

Input: [1,3,5,6], 0
Output: 0

Solution

Binary search, time O(logn), space O(1)

题目求的实际上就是nums中第一个大于等于target的元素位置。

class Solution {
    public int searchInsert(int[] nums, int target) {
        if (nums == null || nums.length == 0) {
            return -1;
        }
        
        int left = 0;
        int right = nums.length - 1;
        
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        
        return left;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:Given a sorted array and a target value, return the in...
    IELBHJY阅读 181评论 2 2
  • Given a sorted array and a target value, return the index...
    倔强的炉包阅读 227评论 0 0
  • 无 眠 文/张振合 梦 与夜无缘 只看见 星星点点 你的身影 如明月 照亮心田 往事 在脑海浮现 瞬间 思绪万...
    诗意的栖居_b130阅读 289评论 0 8
  • 我经常对小伙伴们讲,我们只要赚到更多的钱,就马上搬到更加 富有的地方去住,去办公,如果不富有的地方,我们不去,因为...
    创业指导阅读 208评论 1 1
  • 安安: 展信佳。 1】 今日搬家整理书柜,入手的书籍太多,放不下了。最近,喜欢上互联网的相关书籍,打算放在最方便的...
    阿柒柒成长记阅读 474评论 0 1