← Home
 package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscan(reader, &t)

	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Fscan(reader, &n)
		a := make([]int, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(reader, &a[i])
		}

		l, r := 0, n-1
		for l < r && a[l] == a[r] {
			l++
			r--
		}

		if l >= r {
			fmt.Fprintln(writer, "YES")
			continue
		}

		if check(a, a[l]) || check(a, a[r]) {
			fmt.Fprintln(writer, "YES")
		} else {
			fmt.Fprintln(writer, "NO")
		}
	}
}

func check(a []int, x int) bool {
	i, j := 0, len(a)-1
	for i < j {
		if a[i] == x {
			i++
			continue
		}
		if a[j] == x {
			j--
			continue
		}
		if a[i] != a[j] {
			return false
		}
		i++
		j--
	}
	return true
}