60.Search Insert Position-搜索插入位置(容易题)

原创 2016年08月28日 23:27:59

搜索插入位置

  1. 题目

    给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。

    你可以假设在数组中无重复元素。

  2. 样例

    [1,3,5,6],5 → 2

    [1,3,5,6],2 → 1

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

    [1,3,5,6],0 → 0

  3. 题解

1.简单遍历即可。

public class Solution {
    /** 
     * param A : an integer sorted array
     * param target :  an integer to be inserted
     * return : an integer
     */
    public int searchInsert(int[] A, int target) {
        for (int i=0;i<A.length;i++)
        {
            if (A[i] >= target)
            {
                return i;
            }
        }
        return A.length;
    }
}

2.排序数组使用二分法效率更好。

public class Solution {
    /** 
     * param A : an integer sorted array
     * param target :  an integer to be inserted
     * return : an integer
     */
    public int searchInsert(int[] A, int target) {
        int low = 0;
        int high = A.length-1;
        while (low <= high)
        {
            int mid = low + (high - low) / 2;
            if (target < A[mid])
            {
                if (mid == 0 || target > A[mid-1])
                {
                    return mid;
                }
                high = mid - 1;
            }
            else if (target > A[mid])
            {
                if (mid == A.length - 1)
                {
                    return ++mid;
                }
                low = mid + 1;
            }
            else
            {
                return mid;
            }
        }
        return A.length;
    }
}

Last Update 2016.8.28

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

【035-Search Insert Position(搜索插入位置)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a sorted array and a...

LeetCode Search Insert Position查找插入位置

入门级题目。 思路有两个: 1 二分法查找到该数值,然后前移到比前面的数大的位置。如果没有找到就返回第一个比该数值大的数的下标。 2 可以二分法查找,不过稍微修改一下,例如查找1,3,5,6;那...

Leetcode刷题记—— 35. Search Insert Position(查找插入位置)

一、题目叙述: Given a sorted array and a target value, return t...

LeetCode | Search Insert Position(查找插入位置)

Given a sorted array and a target value, return the index if the target is found. If not, return the...

Lintcode60 Search Insert Position 题解

【题目描述】 Given a sorted array and a target value, return the index if the target is found. If not, ...

85.Insert Node in a Binary Search Tree-在二叉查找树中插入节点(容易题)

在二叉查找树中插入节点 题目给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。 样例给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: 挑战...

leetcode: Search Insert Position

Search Insert Position

[LeetCode]35.Search Insert Position

【题目】 Given a sorted array and a target value, return the index if the target is found. If not, ...

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...

leetcode:Search Insert Position

一、     题目 在一个数组中查询一个目标数,给出的是一个有序的数组、元素个数和目标数,不过特别的是这个数组可能是旋转(rotate)的。 例如:数组可能是 0、1、2、4、5、6         ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:60.Search Insert Position-搜索插入位置(容易题)
举报原因:
原因补充:

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