问题标题: 酷町堂:2779 二分查找

0
0
已解决
廖天瑜
廖天瑜
修练者
修练者

2779   二分查找5

经验值:800

时间限制:1000毫秒

内存限制:128MB

题目描述 Deion

从一个有序的整数序列中查找第一个大于整数k的数,如果存在输出出现位置,否则输出-1。序列有重复元素,并且单调递增。

输入描述 Input Deion

第一行两个整数空格分开,分别表示序列长度n以及查询次数m。
第二行输出n个整数
接下来m行,每行一个整数,表示查询的数字

输出描述 Output Deion

输出m行,每行为查询数字的位置(位置从1开始算)。

样例输入 Sample Input

5 3 2 2 3 4 5 3 2 6

样例输出 Sample Output

4 3 -1

数据范围及提示 Data Size & Hint

1000<=n<=100000
1000<=m<=100000


0
已采纳
毕博雨
毕博雨
中级光能
中级光能

用起点和终点的和除以2

用一个变量存下标(初始值-1)

最后输出

(以上均为重要代码思路)

0
张程阳
张程阳
新手天翼
新手天翼

什么意思???

让我直接给你代码么???

不要想着不劳而获(bushi)

0
廖天瑜
廖天瑜
修练者
修练者

额……这位自以为是的编程“高手”,别人是耐性请教思路,你好好补补阅读理解吧@张程阳

0
0
毕博雨
毕博雨
中级光能
中级光能

用起点和终点的和除以2

用一个变量存储下标(初始值-1)

0
毕博雨
毕博雨
中级光能
中级光能

循环(起点<=终点){
            int 二分查找选的中间下标=(起点+终点)/2;
            如果(被查找数组(以当前二分查找选的中间下标)>当前查找目标){
                标记结果;
                终点更新;
            }否则{
                起点更新;
            }
        }

我要回答