Middle-题目13:35. Search Insert Position

原创 2016年05月31日 15:33:21

题目原文:
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
题目大意:
给出一个排序好的数组,和一个目标值,求出把目标值插到原数组保持升序的情况下,目标值所在的数组下标。
题目分析:
在二分查找的基础上简单变形即可,需要注意目标值在两端的特殊情况。
源码:(language:java)

public class Solution {
    public int searchInsert(int[] nums, int target) {
        int start = 0,end = nums.length - 1;
        int mid = 0;
        while(start <= end) {
            mid = (start + end) / 2;
            if(nums[mid] == target)
                return mid;
            else if(nums[mid] > target) { //target lies between start and mid
                if(mid == 0 || nums[mid - 1] < target)
                    return mid;
                else
                    end=mid-1;
            }
            else { //target lies between mid and end
                if(mid == nums.length-1 || nums[mid + 1] > target)
                    return mid+1;
                else
                    start=mid+1;
            }               
        }
        return mid;         
    }
}

成绩:
0ms,beats 19.33%,众数0ms,90.67%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

LeetCode 35 Search Insert Position(搜索并插入)

翻译给定一个已排序的数组和一个目标值,如果这个目标值能够在数组中找到则返回索引。如果不能,返回它应该被插入的位置的索引。你可以假设数组中没有重复项。以下是一些示例。原文Given a sorted a...
  • NoMasp
  • NoMasp
  • 2015年11月28日 21:16
  • 2314

(Java)LeetCode-35. Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the...
  • u012848330
  • u012848330
  • 2016年08月07日 21:46
  • 243

【LeetCode-面试算法经典-Java实现】【035-Search Insert Position(搜索插入位置)】

【035-Search Insert Position(搜索插入位置)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a sorted array and a...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月27日 07:18
  • 2408

Search Insert Position -- LeetCode

原题链接: http://oj.leetcode.com/problems/search-insert-position/  这道题比较简单,就是二分查找。思路就是每次取中间,如果等于目标即返回,否则...
  • linhuanmars
  • linhuanmars
  • 2014年03月02日 07:40
  • 12493

LeetCode35——Search Insert Position

LeetCode35——Search Insert Position 题意: 给定一个target,和有序序列,如果target在序列中,则返回其索引,否则给出当插入target且不改变序列性质时...
  • zhangxiao93
  • zhangxiao93
  • 2015年10月15日 22:01
  • 602

35、Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the...
  • littledouble
  • littledouble
  • 2015年01月26日 21:38
  • 236

LeetCode 35 -Search Insert Position ( JAVA )

Given a sorted array and a target value, return the index if the target is found. If not, return the...
  • UckyK
  • UckyK
  • 2016年04月12日 14:30
  • 460

LeetCode 35 Search Insert Position (C,C++,Java,Python)

Problem: Given a sorted array and a target value, return the index if the target is found. If n...
  • runningtortoises
  • runningtortoises
  • 2015年05月18日 20:33
  • 1088

[LeetCode]35.Search Insert Position

【题目】 Given a sorted array and a target value, return the index if the target is found. If not, ...
  • SunnyYoona
  • SunnyYoona
  • 2015年01月24日 15:07
  • 1411

35. Search Insert Position **

Given a sorted array and a target value, return the index if the target is found. If not, return the...
  • alwaystry
  • alwaystry
  • 2016年08月11日 18:22
  • 66
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目13:35. Search Insert Position
举报原因:
原因补充:

(最多只允许输入30个字)