我正在尝试关于代码厨师的 Rainbow 数组问题:
Java 中的问题。我的解决方案通过了问题中提到的所有三个测试用例,但我不明白为什么我的解决方案不被接受。
. 请让我知道我应该进行哪些修改以及为什么?
厨师和彩虹阵列
厨师同样喜欢所有的阵列。但他比其他的更喜欢一些阵列。他特别喜欢彩虹阵。
如果数组具有以下结构,则该数组是 Rainbow:
- 第一个 a1 元素等于 1。
- 接下来 a2 个元素等于 2。
- 接下来 a3 元素等于 3。
- 接下来 a4 元素等于 4。
- 接下来的 a5 元素等于 5。
- 接下来的 a6 元素等于 6。
- 接下来的 a7 元素等于 7。
- 接下来的 a6 元素等于 6。
- 接下来的 a5 元素等于 5。
- 接下来 a4 元素等于 4。
- 接下来 a3 元素等于 3。
- 接下来 a2 个元素等于 2。
- 接下来 a1 元素等于 1。
- ai 可以是任何非零正整数。
- 数组中没有其他元素。
输入
- 输入的第一行包含一个整数 T,表示测试用例的数量。
- 每个测试用例的第一行包含一个整数 N,表示给定数组中元素的数量。
- 第二行包含 N 个用空格分隔的整数 A1、A2、...、AN,表示数组的元素。
输出
- 对于每个测试用例,如果数组是否为彩虹数组,则输出包含与该案例对应的“是”或“否”(不带引号)的行。
约束
- 1≤T≤100
- 7≤N≤100
- 1≤Ai≤10
子任务子任务 1(100 分):原始约束
例子
输入
3
19
1 2 3 4 4 5 6 6 6 7 6 6 6 5 4 4 3 2 1
14
1 2 3 4 5 6 7 6 5 4 3 2 1 1
13
1 2 3 4 5 6 8 6 5 4 3 2 1
输出
是的
不
不
我的解决方案:
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
while(T-->0)
{
int N=sc.nextInt();
int A[]=new int[N];
for (int i = 0; i < A.length; i++) {
A[i]=sc.nextInt();
}
int flag=0;
//taking the length to iterate over upto the half if the array
int len;
if(N%2==0) {
len=N/2;
}
else {
len=(N/2)+1;
}
//Condition 1: palandrome or nor
//Condition 2: 7 present or not
for (int i = 0; i < len; i++) {
if(A[i]!=A[N-1-i] || A[len-1]!=7) {
flag=1;
break;
}
}
//System.out.println("Flag: "+flag);
if(flag==0) {
System.out.println("yes");
}else {
System.out.println("no");
}
}
}
}