|
是不是一次二分也行呢?
- int getCount(int A[], int nLeft, nRight, int n)
- {
- if (nLeft == nRight)
- return A[nLeft] == n ? 1 : 0;
- int nMid = (nLeft + nRight) /2;
- if (A[nMid] == n)
- return getCount(A, nLeft, nMid - 1,n) + getCount(A, nMid + 1, nRight,n) + 1;
- else if (A[nMid] > n)
- return getCount(A, nLeft, nMid -1, n );
- else
- return getCount(A, nMid+1, nRight,n);
- }
-
复制代码
|
|