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

外国英文设计网站网站开发很难么

外国英文设计网站,网站开发很难么,企业建网站程序,国际域名和国内域名区别思路 寻找第一个大于等于目标的 数 因为该数组是升序的 所以 我们可以采用二分的方式 逼近答案 定义一个左指针和一个右指针 当左右指针重合时 就是我们要找的答案 当我们寻找第一个大于等于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.yayakq.cn/news/913553/

相关文章:

  • 唐山seo设计网站淘宝上做淘宝客的网站
  • dede网站怎么更换模板wordpress 模版标签
  • 网站后台登陆路径一般网站设计多少钱
  • 米读小说哪个网站开发的做网站需要向客户了解什么
  • wordpress网站重新安装微信、网站提成方案点做
  • wordpress如何安装网站主题公司网站非响应式模板
  • 建设一个网站首先需要什么外贸网站案例
  • 河南专业的做网站的公司wordpress修改code标签
  • 龙门惠州网站建设企业服务账号怎么查询
  • 网站开发翻译功能中天建设集团有限公司总部在哪里
  • 鲜花网站建设教程seo咨询岳阳
  • 外国人的做视频网站深圳市南山区住房和建设局网站官网
  • 网站文件夹命名爱站网是什么平台
  • 如何区分网站开发语言拟定一个物流网站建设方案
  • 一家专门做海报的网站做网站有了空间在备案吗
  • 新网站备案查询动漫制作专业专科
  • 无代码建站软件青浦专业网站建设
  • 武功县住房和城乡建设局网站数字营销工具
  • 上海网站制作公司哪设计公司网站详情
  • 湖北省住房和城乡建设厅网站的公示公告生成器在线制作免费
  • 网站卖链接青岛网站制作服务商
  • 网站建设策划书有哪些内容个人网站建设实验心得
  • 毕业设计网站做几个网站404怎么解决
  • 网站开发入门培训网站建设可以修改吗
  • 教育云平台网站建设网站建设公司不给ftp
  • 怎么做网站才能不被仿冒烟台 网站建设多少钱
  • 网页制作优质网站网站打不开 其它能打开
  • 模具配件东莞网站建设技术支持站群源码
  • 空调维修网站建设广州专业网站改版领军企业
  • 团队建设海报网站用手机做自己的网站