Какой тестовый пример мне не хватает здесь? - PullRequest
0 голосов
/ 04 мая 2020

Задача состоит в следующем: у шеф-повара есть N блюд разных типов, расположенных в ряд: A1, A2,…, AN, где Ai обозначает тип ih di sh. Он хочет выбрать как можно больше блюд из данного списка, но, удовлетворяя двум условиям:

  1. Он может выбрать только один тип ди sh.
  2. Нет двух выбранных блюд должны быть смежными друг с другом. Шеф-повар хочет знать, какой тип ди sh он должен выбрать, чтобы он мог выбрать максимальное количество блюд.

Пример: учитывая N = 9 и A = [1,2, 2,1,2,1,1,1,1].

Для типа 1 шеф-повар может выбрать не более четырех блюд. Один из способов выбрать четыре блюда типа 1 - А1, А4, А7 и А9.

Для типа 2 шеф-повар может выбрать не более двух блюд. Одним из способов является выбор A3 и A5.

Так что в этом случае шеф-повар должен go для типа 1, в котором он может выбрать больше блюд.

    import java.util.*;
    import java.lang.*;
    import java.io.*;
    import java.util.Scanner;

    /* Name of the class has to be "Main" only if the class is public. */
    class Solution
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            Scanner sc1 =  new Scanner(System.in);
            int testCases = sc1.nextInt();
            int prevNum =0;
            int prevCount =0;
            for(int i=0;i<testCases;i++){
                int totalDishes = sc1.nextInt();
                int [] dish = new int[totalDishes];
                for(int j =0;j<totalDishes;j++){
                    dish[j] = sc1.nextInt();
                }
                for(int j =0;j<totalDishes;j++){
                    int count =0;
                    int num =dish[j];
                    if(prevNum!=num){
                        for(int k=j;k<totalDishes;k++){
                        if(dish[j]==dish[k]){
                            count++;
                            if(k+1<totalDishes && dish[k]==dish[k+1] ){
                                k++;
                            }
                           }
                        }
                        if(prevCount < count){
                            prevNum = num;
                            prevCount = count;
                    }
                }

            }

            System.out.println(prevNum);
        }
    }
    }
...