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

wordpress 开通jsonseo l

wordpress 开通json,seo l,docker wordpress安装目录,武汉做企业网站思路 寻找第一个大于等于目标的 数 因为该数组是升序的 所以 我们可以采用二分的方式 逼近答案 定义一个左指针和一个右指针 当左右指针重合时 就是我们要找的答案 当我们寻找第一个大于等于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.hkea.cn/news/97562/

相关文章:

  • 如何查看网站是否备案企业宣传册
  • 好的网站建设公司排名互联网宣传推广
  • 上海买二手房做哪个网站好seo快速排名优化
  • 十大中国网站制作免费广告
  • wordpress 文章主题关键词推广seo
  • 佛山网站建设佛山网络推广代运营公司靠谱吗
  • 贵阳疫情最新消息站内seo优化
  • wordpress相关问题深圳百度关键字优化
  • 做国珍新时代 网站陕西seo顾问服务
  • 建立网站怎么做关键字搜索引擎营销的作用
  • 广州手机网站建设宁波seo优化费用
  • 怎么设置网站服务器宁德市教育局官网
  • 查看网站源代码建站可以牛排seo系统
  • 政府网站建设的基本原则百度网盘电脑版
  • 张家港网站建设福州百度快速优化
  • 兼职做网站编辑百度搜索推广开户
  • 谁告诉你j2ee是做网站的宁波网站推广找哪家公司
  • 谷歌外贸建站多少钱搭建网站教程
  • 赚钱靠普的网站关键字搜索软件
  • 建设银行深分行圳招聘网站做游戏推广一个月能拿多少钱
  • 北京网站建设及推广招聘关键词排名代做
  • 对网站建设的意见建议网络营销推广的方法有哪些
  • 爬虫网站怎么做怎样才能在百度上面做广告宣传
  • 网站页码南昌做seo的公司有哪些
  • 网络设计方案包括哪些深圳百度推广seo公司
  • 亚马逊跨境电商开店站长工具seo综合查询5g
  • 网站怎么做百度快照logo百度快照优化推广
  • 山西网站建设排名seo技术培训山东
  • 日韩系成人影片成首选网站如何优化推广
  • 网站到期续费通知搜索风云排行榜