博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Search Insert Position
阅读量:5128 次
发布时间:2019-06-13

本文共 1265 字,大约阅读时间需要 4 分钟。

Search Insert Position

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

 
 
 
 
采用[0,n-1]左闭右闭的方式查找
考虑几种情况
 
[1,2]查找0
 
第一步:left=0,right=1,A[mid]=1>0  ===> right=1-1=0
第二步:left=0,right=0,A[mid]=1>0 ===> right=0-1=-1
停止,返回left即可
 
[1,2]查找3
第一步:left=0,right=1,A[mid]=1<3 ===>left=0+1=1
第二部:left=1,right=1,A[mid]=2<3 ===>left=1+1=2
停止,返回left即可
 
[1,2]查找1.5
第一步:left=0,right=1,A[mid]=1<1.5 ===>left=0+1=1
第二步:left=1,right=1,A[mid]=2>1.5 ===>right=1-1=0
停止,返回left即可
 
综上,如果查找不到,只需要返回left即可
 
 
 
采用二分查找,关于二分查找
 
1 class Solution { 2 public: 3     int searchInsert(int A[], int n, int target) { 4         5         int left=0; 6         int right=n-1; 7         int mid; 8         while(left<=right) 9         {10             mid=(left+right)/2;11            12             if(A[mid]
target)17 {18 right=mid-1;19 }20 else21 {22 return mid;23 }24 }25 26 return left;27 }28 };

 

转载于:https://www.cnblogs.com/reachteam/p/4251656.html

你可能感兴趣的文章
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>