海贼19-8班现场课
20569人加入学习
(0人评价)
编码能力训练课

0基础入门,突破欧拉50题

价格 ¥ 299.00
该课程属于 海贼19-8班(C++高薪班) 请加入后再学习

总结:

1、二分查找的写法:函数指针,查找上界,查找值;

int binary_search(int (*func)(int), int n, int x)

 

int1 binary_search(int1 (*func)(int1), int1 n, int1 x) {

    int1 head =  1, tail = n, mid;

    while (head <= tail) {

        mid = (head + tail) >> 1;

        if (func(mid) == x) return mid;

        if (func(mid) < x) head = mid + 1;

        else tail = mid - 1;

    }

    return 0;

}

就是,第一个,差值为五边形数的一对五边形数

也可以解方程Pk - Pj = Pn

 

枚举到多少才能得到答案呢?可以找到这样一个枚举上界;

 

如何判断当前得到的和值或者差值,是五边形数?

方法一、如果我生成一个五边形数字的表, 把他放进去即可;那这个表需要设计成多大呢?

方法二、二分查找(算法时间复杂度O(logN);不仅可以用来在数组中查找元素,还可以用来求解单调函数的解。

[展开全文]

授课教师

高级算法研发工程师
C++算法工程师

课程特色

视频(41)
文档(51)
图文(71)