#include<iostream>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
struct node {
	int idx, a;
}x[200004];
int main()
{
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int t, n, i, j, cnt, ans, f;
	cin >> t;
	while (t--) {
		cin >> n;
		f = 1;
		for (i = 0; i < n; i++) {
			cin >> x[i].a;
			if (f && x[i].a != x[0].a) f = 0;
			x[i].idx= i + 1;
		}
		if (n == 1 || f) {
			cout << 0 << endl;
			continue;
		}
		sort(x, x + n, [](const node& left, const node& right) {
			if (left.a == right.a) return left.idx < right.idx;
			return left.a < right.a;
			});
		ans = INF;
		for (i = 0; i < n; i++) {
			cnt = 0;
			if (x[i].idx != 1) cnt++;
			for (j = i + 1; j < n; j++) {
				if (x[j].a == x[j -1].a) {
					if (x[j].idx - x[j - 1].idx != 1) cnt++;
				}
				else {
					i = j - 1;
					break;
				}
			}
			if (j != n && x[j - 1].idx != n) cnt++;
			else if (j == n && x[n-1].idx != n) {
				cnt++;
				if (cnt < ans) ans = cnt;
				break;
			}
			if (cnt < ans) ans = cnt;
			if (j == n) break;
		}
		cout << ans << endl;
	}
	return 0;
}