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

用dw做网站首页步骤搜索引擎推广的常见形式有

用dw做网站首页步骤,搜索引擎推广的常见形式有,郑州做网站好的公司,沈阳哪个公司可以做网站思路 寻找第一个大于等于目标的 数 因为该数组是升序的 所以 我们可以采用二分的方式 逼近答案 定义一个左指针和一个右指针 当左右指针重合时 就是我们要找的答案 当我们寻找第一个大于等于x的数时 a[mid]>x,答案在mid处 或者在mid的左边 因此让rmid继续逼近 如果…

思路 寻找第一个大于等于目标的 数

因为该数组是升序的 所以 我们可以采用二分的方式

逼近答案

定义一个左指针和一个右指针

当左右指针重合时 

就是我们要找的答案

当我们寻找第一个大于等于x的数时

a[mid]>=x,答案在mid处 或者在mid的左边

因此让r=mid继续逼近

如果中间值小于x说明答案在右边

并且必定不在mid 处

因此让l=mid+1;

下面寻找右端点

当a[mid]<=x;

说明答案在mid 处或者在mid 的右边

因此让l=mid;

否则让r=mid-1;

为了避免陷入死循环

我们要讨论特殊情况

例如 当l指向3,r指向4,;

且3为左端点 4为右端点

寻找左端点时

mid=(3+4)>>1=3;

此时a[3]=x,让r=mid=3;

完成重合

当寻找右端点时 如果还是

mid=(l+r)>>1;

a[mid]=x,让l=mid=3,并未发生改变 陷入了死循环

因此我们在找右端点要+1 让mid上取整

mid=(l+r+1)/2=4;

此时 让l=mid=4;

完成重合  

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,q;
const int N=1e5+10;
int a[N]; 

int main(){
    cin>>n>>q;
    for(int i=0;i<n;i++){
        cin>>a[i];
        
    }    
    while(q--){
        int x;
        cin>>x;
        int l=0,r=n-1;
        while(l<r){
            int mid=l+r>>1;
            if(a[mid]>=x){
                r=mid;
            }else{
                l=mid+1;
            }
        }
        if(a[r]==x)
        {
            cout<<r<<' ';
            int r=n-1;
            while(l<r){
                int mid=l+r+1>>1;
                if(a[mid]<=x){
                    l=mid;
                }else{
                    r=mid-1;
                }
            }
            cout<<r<<endl;
        }else
        {
            cout<<-1<<' '<<-1<<endl;
        }
        
    }
    return 0;
}

关键点在于讨论特殊情况

c++的除法为下取整

两指针位于相邻位置时

如何调整算法

来让二分不会陷入死循环

http://www.yidumall.com/news/69001.html

相关文章:

  • 遵义网站开发制作公司北京网站维护公司
  • 中国建设银行 云南 网站首页抖音seo排名
  • 毕业设计网站建设产品网络推广
  • 设计logo网站侵权吗知乎网络营销方案设计毕业设计
  • 手机门户WordPress主题惠州抖音seo
  • 做网站 用什么做数据库最好百度平台官网
  • 具有营销型网站的公司有哪些西安网站seo工作室
  • 在pc端网站基础上做移动端包括哪些内容
  • 云南网站备案系统南京网站制作公司
  • 网站后台怎么修改密码揭阳seo快速排名
  • 电子商务平台是什么aso优化违法吗
  • 河南教育平台网站建设营销策划思路
  • html加css漂亮页面源码企业网站优化关键词
  • 同城网站开发永久不收费的软件app
  • 南阳专业做网站公司哪家好公司官网制作开发
  • cms系统java网站优化怎么操作
  • 西宁做网站的好公司推广网站推广
  • 动态网站设计要求太原网站推广公司
  • 房产中介网站开发模板百度用户服务中心官网电话
  • 网站默认中文字体陕西网站推广公司
  • 邯郸高端网站建设价格西安seo排名外包
  • 图标设计网站论坛平台
  • 别的网站做相关链接怎么做搜索引擎调词平台价格
  • 阿里云营销网站建设教师遭网课入侵直播录屏曝光广场舞
  • 网站应用系统设计方案百度推广的效果
  • 枣强网址建站百度搜索流量查询
  • 如何建造自己的网站今日新闻最新头条10条摘抄
  • 中旅远洋商务网站建设策划书百度网盘电话人工服务
  • 连云港网站建设服务小说排行榜2020前十名
  • 网站内如何做论坛seo网站课程