当前位置: 首页 > news >正文

泰安网站建设如何全国文明城市创建标准

泰安网站建设如何,全国文明城市创建标准,最好的淘宝客网站,wordpress wp采集规则每日一题之二分查找(一) 1.题目(搜索插入位置) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间…

每日一题之二分查找(一)

1.题目(搜索插入位置)

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

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums无重复元素升序 排列数组
  • -104 <= target <= 104

2.解题思路

因为数组是有序的排列数组,且无重复元素,所以可以使用二分来找下标

这里一共有四种情况

(1)数组中找到了目标元素,返回当前目标元素的下标结束

(2)目标元素不存在,应在数组的所有元素之前

(3)目标元素不存在,应在所有的元素之后

(4)目标元素不存在,应在数组中的某个位置

具体实现步骤

1.先找到这个数组的左边界,再找到这个数组的右边界,此时的范围就是整个数组

2.然后进行二分查找

(1)先找到中间位置的那个数,然后与目标值进行比较,

1> 如果当前的数比目标值小的话那么左边界变为中间位置向右一个的位置,继续进行查找

2> 如果当前的数比目标值小的话那么右边界变为中间位置向左一个的位置,继续进行查找

3> 如果当前的数和目标值相等的话,那么找到了

(2)当左边界比右边界大的时候,结束查找

3.那要添加元素的位置就是右边界+1的位置

3.代码

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left=0;int right=nums.size()-1;while(left<=right){//int mid=(left+right)>>1;这里通过学习发现可以进行优化//优化如下int mid=left+(right-left)/2;//优化后的代码if(nums[mid]==target){return mid;}if(nums[mid]>target){right=mid-1;}if(nums[mid]<target){left=mid+1;}}return right+1;}
};
http://www.yayakq.cn/news/686092/

相关文章:

  • 做外贸网站用什么软件手机个人网页制作
  • 房地产门户网站网站备案由别人代
  • 深圳市龙岗区住房和建设局官网网站我要自学网ps视频教程免费下载
  • 网站收录怎么提高世界足球排名前100名
  • 网站策划案模板天津建设招标网站
  • 建设工程招标专业网站上海自助建站系统
  • 建立网站备案需要什么资料长春网站建设net
  • 自己做代练网站开发网站有什么用
  • 最新汽车网站大全建设网站培训学校
  • 徐州营销网站建设报价教育类网站配色
  • 网站问卷调查系统怎么做网页设计范文
  • 我的世界服务器如何做充钱网站百度站长平台账号
  • 网站优点缺点网站页面怎么设计
  • 浙江高速建设公司网站注册开发公司
  • 医疗网站建设资讯苏州相城做网站的
  • 做网站周记百度小程序开发平台
  • 一家做运动鞋的网站好昌平网站开发多少钱
  • 学网站建设能赚钱吗开发游戏的职业叫什么
  • 湖北响应式网站建设企业网页制作软件序列号
  • 湖南营销型网站建设公司排名网络营销策划方案
  • 怎么做网贷网站新媒体运营公司排行榜
  • 建设宠物食品网站的功能定位wordpress lms
  • 网页设计一个网站百度推广渠道代理
  • 重庆网站建设选夹夹虫企业网络方案设计思路
  • 做外贸需要哪些网站有哪些群晖wordpress打开慢
  • 深圳外贸网站开发公司游戏试玩平台代理
  • 住房与城乡建设部网站注册中心广东建立网站
  • 东莞市企业网站制作企业wordpress建站好用吗
  • 本地网站建设流程网络营销方法的选择
  • 软件下载网站开发seo管理工具