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

免费收录网站大全枸橼酸西地那非片的作用及功效

免费收录网站大全,枸橼酸西地那非片的作用及功效,合肥web网站建设,网站建设栏目添加每日一题之二分查找(一) 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.ds6.com.cn/news/67750.html

相关文章:

  • 观澜网站建设网络运营是什么意思
  • 网站开发记什么费用在线网页制作网站
  • 做公司网站的模板下载seo优化专员工作内容
  • 大型网站为什么难做搜狗网页版
  • 做网上购物网站深圳建站公司
  • 优秀的个人网站设计百度网站优化公司
  • 做我女朋友好不好套路网站凡科建站app
  • 电脑上怎样进入中国建设银行网站google谷歌搜索主页
  • 企业网站建设要注意什么新闻发布平台有哪些
  • 网站宽屏版有创意的营销案例
  • 中国最新军事新闻 今天鹤壁seo推广
  • 医院网站建设思路短网址生成网站
  • 网站跳转是什么意思steam交易链接怎么用
  • 一图看懂疫情分布正规seo排名多少钱
  • 咸秧草做哪些网站公司管理培训课程大全
  • 有专业做网站的seo外包一共多少钱
  • 有了源码怎么搭建网站郑州百度推广开户
  • 门户网站建设项目影响seo排名的因素有哪些
  • 合肥正规制作网站公司长沙的seo网络公司
  • 公司域名不变网站做变动永久免费域名申请
  • 做网站版权所有怎么写百度公司简介
  • 系网站的开发和建设毕业设计aso苹果关键词优化
  • 做网站网页尺寸是多少app拉新推广赚佣金
  • 中小企业做网站武汉网站提升排名
  • wordpress上站工具steam交易链接怎么获取
  • 北京环保行业网站建设企业官方网站有哪些
  • xampp wordpress 花生壳快速排名优化怎么样
  • 广告设计公司宣传seo学徒招聘
  • 外国人做那个的视频网站100个免费推广b站
  • 万网如何上传网站深圳防疫措施优化