acwing 789 数的范围

简介: acwing 789 数的范围

活动 - AcWing

最左边的x  ----- >= x

最右边的x ------ <= x

x的前一个 ------- <x

x的后一个 ---------> x

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
const int N = 100010 ;
int a[N] ;
int n , q ;
int main(){
 
  cin >> n >> q ;
  for(int i = 0 ; i < n ; i ++) cin >> a[i] ;
  while(q --){
    int k ; cin >> k ;
    int l = 0 , r= n -1;
    while(l < r){
      int mid = (l+r)>>1 ;
      if(a[mid] >= k) r = mid ;
      else l = mid + 1 ;   
    }
    if(a[l] != k) {
      cout << "-1 -1" << endl ;
      continue ;
    }
    else {
      cout << l << " "  ;
      int l2 = 0 , r2 = n-1 ; 
      while(l2 < r2) {
        int mid = l2 + r2 + 1 >> 1 ;
        if(a[mid] <= k) l2 = mid ;
        else r2 = mid - 1 ;
      }
      cout << l2 << endl ;
    }
  }
  return 0 ;
}
目录
相关文章
|
6月前
leetcode:414. 第三大的数
leetcode:414. 第三大的数
29 0
|
6月前
leetcode-414:第三大的数
leetcode-414:第三大的数
37 0
|
6月前
|
机器学习/深度学习
leetcode-507:完美数
leetcode-507:完美数
39 0
【剑指offer】-和为S的两个数-38/67
【剑指offer】-和为S的两个数-38/67
【Leetcode -605.种花问题 -628.三个数的最大乘积】
【Leetcode -605.种花问题 -628.三个数的最大乘积】
28 0
|
Python
LeetCode 414. 第三大的数
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
85 0
AcWing 806. 两个数的和
AcWing 806. 两个数的和
76 0
AcWing 806. 两个数的和
AcWing 805. x和y的最大值
AcWing 805. x和y的最大值
54 0
AcWing 805. x和y的最大值
AcWing 614. 最大值
AcWing 614. 最大值
71 0
AcWing 614. 最大值
AcWing 53. 最小的k个数
AcWing 53. 最小的k个数
80 0
AcWing 53. 最小的k个数