思路: O ( n 3 ) O(n^3) O(n3)枚举所有公差
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
double a[30000];
bool equal(double a, double b)
{
if (abs(a - b) <= 1e-6)return 1;
return 0;
}
void solve() {
int n;
cin >> n;
for (int i = 1;i <= n;i++)
{
cin >> a[i];
}
int ans = 1e9;
if (n == 1)ans = 0;
for (int i = 1;i <= n;i++)for (int j = i + 1;j <= n;j++)
{
double d = (a[j] - a[i]) / (j - i);
int res = 0;
for (int k = 1;k <= n;k++)
{
if (!equal(a[k], a[i] + (k - i ) * d))res++;
}
ans = min(ans, res);
}
cout << ans << endl;
}
int main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int T;
cin>>T;
while(T--)solve();
return 0;
}