这道题我的解法是让左半部分全为偶数,从2开始,每次加2,右半部分从1开始,每次加2,但是最后一个数要放到最后才能加

这是为了保证两个部分的和要一致

当然,也有输出为NO的情况,一般是n/2为奇数,这就得输出NO,其它都是YES



import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int t=scanner.nextInt();
		while(t-->0) {
			int n=scanner.nextInt();
			if(n/2%2==1) {
				System.out.println("NO");
				continue;
			}
			System.out.println("YES");
			int s1=0;
			ArrayList<Integer> list=new ArrayList<>();
			for (int i = 2; i <= n; i+=2) {
				list.add(i);
				s1+=i;
			}
			for (int i = 1; i <= n-3; i+=2) {
				list.add(i);
				s1-=i;
			}
			list.add(s1);
			for(Integer x:list) {
				System.out.print(x+" ");
			}
			System.out.println();
		}

	}

}