Search Insert Position

原创 2015年07月10日 17:32:56

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 SeachPosition {    
    public static  int searchInsert(int[] nums, int target) {
        int length = nums.length;
        //判断target这个元素是否存在数组中,若存在则返回其下标位置
        for(int i = 0 ;i < length; i++){
            if(nums[i] == target){
                return i;
            }
        }
        //新建一个数组,用来做加入target的容器
        int[] num = new int[length+1];
        for(int i = 0;i < length;i++){
            num[i]= nums[i];
        }
        num[length] = target;
        //对新数组进行排序
        Arrays.sort(num);
        //获取排序后的target的下标
        for(int i = 0; i< length+1; i++){
            if(num[i]== target){
                return i;
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        int[] nums={1,3,4,7};
        int target = 2;
        int result = searchInsert(nums, target);
        System.out.println(result);
    }

}

使用折半查找果然快了很多,我又傻逼了

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

【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
  • 2309

【LeetCode】- Search Insert Position(查找插入的位置)

[ 问题: ] Given a sorted array and a target value, return the index if the target is found. If not, re...
  • zdp072
  • zdp072
  • 2014年05月01日 00:30
  • 1147

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

一、题目叙述: Given a sorted array and a target value, return t...
  • sunshine0_0
  • sunshine0_0
  • 2016年12月29日 19:42
  • 84

【trie树】insert和search操作

#include #include #include #include using namespace std; #define N 26 struct TrieNode { c...
  • nisxiya
  • nisxiya
  • 2014年11月14日 13:00
  • 554

postgresql中position函数相关性能探究~

起因:           postgresql中position函数提供,从头查找返回第一个匹配到字符串的下标。           而我需要返回从后向前查找第一个匹配到的坐标,但是postgres...
  • yibei8811
  • yibei8811
  • 2015年01月14日 15:17
  • 2216

Web前端基础(CSS position的正确用法)

在暑假找实习的时候,折800的技术一面时问我的一道问题:position属性的relative以及absolute的区别是什么?   很惭愧,当时竟然把两者弄混了,现在好好来整理一下...   任何元...
  • u011318165
  • u011318165
  • 2015年08月15日 20:58
  • 1104

HTML中position的五种属性值

*{margin:0;padding:0}
  • zfy920123
  • zfy920123
  • 2015年04月06日 22:00
  • 6897

Visual C++ POSITION用法解释,POSITION是什么?

POSITION是MFC模板类库中经常使用的一个数据类型,我们从它的定义可以看出,其实,它就是一个指针。 // abstract iteration position struct __P...
  • hunme
  • hunme
  • 2015年07月10日 13:26
  • 809

POSITION用法解释

POSITION是MFC模板类库中经常使用的一个数据类型,我们从它的定义可以看出,其实,它就是一个指针。 // abstract iteration position struct __POSIT...
  • L_Andy
  • L_Andy
  • 2013年12月23日 18:55
  • 6971

position 定位相互覆盖的问题

position 定位相互覆盖的问题
  • weicy1510
  • weicy1510
  • 2017年04月18日 17:26
  • 457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Search Insert Position
举报原因:
原因补充:

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