T2. 小苯的数组查询 (20分) - 饿了么测试岗编程题

alt

题目描述

小苯有一个长度为n的数组α。它定义了一个函数 。(|表示位运算中的按位或运算)

现在他有q次询问,每次询问他都会给出一个区间[l,r],以及一个正整数k,他想知道在区间中是否存在一个右端点r' (),使得,请你帮帮他处理每次询问吧。

输入描述

输入包含若干行。

第一行两个正整数n,q(),分别表示数组α的长度和小苯的询问次数。

第二行n个正整数, 表示数组α的每个元素。

接下来q行,每行三个正整数 ,

输出描述

输出包含q行,每行一个整数,如果存在符合条件的,请输出最小的一个,如果不存在输出一个-1。

输入

5 5
3 2 3 3 6
1 2 3
1 5 7
1 4 7
2 2 2
2 3 7

输出

1
5
-1
2
-1

题解

这道题目属于数组处理和位运算的问题。

解题思路如下:

  1. 读取输入的数组长度 n 和询问次数 q,以及数组元素。
  2. 对每个询问,读取区间 [l, r] 和目标值 k
  3. 从左端点 开始遍历数组,使用按位或运算来计算区间 中

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务