为什么我的解决方案对codechef上的Rainbow Array问题不正确?

时间:2019-01-21 09:18:12

标签: java arrays

我在代码厨师上尝试了Rainbow数组问题: Java中的question。  我的解决方案通过了问题中提到的所有三个测试用例,但是我不明白为什么我的solution不被接受。 screen shot。请让我知道我要进行哪些修改,为什么?

厨师和Rainbow阵列

厨师同样喜欢所有数组。但是他比其他人更平等地喜欢某些阵列。特别是,他喜欢Rainbow Arrays。

如果数组具有以下结构,则该数组为Rainbow:

  1. 前a1个元素等于1。
  2. 接下来的a2个元素等于2。
  3. 接下来的a3个元素等于3。
  4. 接下来的a4个元素等于4。
  5. 接下来的a5个元素等于5。
  6. 接下来的a6个元素等于6。
  7. 接下来的a7个元素等于7。
  8. 接下来的a6个元素等于6。
  9. 接下来的a5个元素等于5。
  10. 接下来的a4个元素等于4。
  11. 接下来的a3个元素等于3。
  12. 接下来的a2个元素等于2。
  13. 下一个a1元素等于1。
  14. AI可以是任何非零的正整数。
  15. 数组中没有其他元素。

输入

  • 输入的第一行包含一个整数T,表示测试用例的数量。
  • 每个测试用例的第一行包含一个整数N,表示给定数组中元素的数量。
  • 第二行包含N个以空格分隔的整数A1,A2,...,AN,它们表示数组的元素。

输出

  • 对于每个测试用例,如果该数组是否为Rainbow数组,则输出包含对应于该案例的“是”或“否”(不带引号)的行。

约束

  • 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");
        }

    }


  }
 }

0 个答案:

没有答案