c_cpp 在排序的二进制数组中计数1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在排序的二进制数组中计数1相关的知识,希望对你有一定的参考价值。

// https://www.geeksforgeeks.org/count-1s-sorted-binary-array/
#include <iostream>
using namespace std;

int func(int a[], int l, int r){
    if (l<=r){
        int m=(l+r)/2;

        if ( (m==r || a[m+1] == 0) && a[m] == 1)
            return m;
        if (a[m] == 1)
            return func(a,m+1,r);
        return func(a,l,m-1);
    }
    return 0;
}

int main(){
    int n;
    cin >> n;
    int a[n];
    for (int i=0; i<n; i++)
        cin >> a[i];

    int j=func(a,0,n-1);
    cout << j+1;
}

以上是关于c_cpp 在排序的二进制数组中计数1的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 找到大量数字中最大的k数。您无法对数组进行排序。

在 ngFor 中计数 - Angular 2

如何在列表索引中计数()

工厂在测试中计数 2 个模型而不是 1 个

c_cpp 找到二进制数1。

如何在 Slick 2.0 中计数(*)?