我想返回排序數組中重複值的數量。函數返回排序數組中重複數的計數
例如:A = {1,1,2,3,4,4},FRATELLI(N)應返回2.(它們是1,1和4,4)
我試圖使用一個遞歸的方法,但它不起作用。它總是給我4.
我在問,如果有人請能幫助我更好地理解這種編程方法。非常感謝!
功能:
#include <iostream>
using namespace std;
int fratelli(int a[], int l, int r)
{
if (l == r) return 0;
else
{
int c = (l+r)/2;
int n = fratelli(a, l, c) + fratelli(a, c+1, r);
if (a[l] == a[l+1]) n++;
return n;
}
}
int main()
{
const int _N = 11;
int array[_N] = { 1, 1, 2, 3, 5, 5, 7, 8, 8, 11, 12 };
cout << "\n" << fratelli(array, 0, _N-1);
return 0;
}
如果你有a = {1,1,1}它應該返回2還是1? – Infested
請勿將'_N'用作變量名稱。以下劃線和大寫字母開頭的名稱保留給實施。 –
您確定要使用遞歸嗎?如果我理解正確,遞歸會使問題更加困難。 – gkovacs90