Как я могу найти самую большую строку чисел? - PullRequest
0 голосов
/ 31 октября 2019

Есть элементы массива, например: 2 3 4 7 8. Мне нужно записать в консоль, какая строка чисел самая большая, поэтому решение будет 2-4, потому что 2 3 4 -> 4-2 = 2больше 7 8 -> 8-7 = 1

Мне нужно найти самый длинный растущий ряд, который увеличивается на 1. 2 3 4 (2 + 1 = 3, 3 + 1 = 4 и 4+1 = 7, это неправильно. И в 2 3 4 строка имеет 2 элемента, и это самый длинный, а не 7 8, где он просто 1

int first=0;
int last=0;

for(int i=0; i < n; i++)
{
    if(t[i]-t[i-1]==1)
    {
        first=t[i];
    }
    else
    {
       last=t[i];
    }
}

С этим кодом решение 7 8, поэтому код будетпоследняя пара (7 8).

1 Ответ

0 голосов
/ 31 октября 2019

Следующая функция принимает массив int и размер в качестве входных данных, как в вашем примере кода. И вернуть максимальный увеличивающийся размер. Возможно, это не совсем то, что вы ищете, но ваш вопрос не очень ясен.

int func(int[] arr, int size) {
    // trivial case
    if (size == 0) 
        return 1;

    int max = 1; // At least 1 when there is an element
    int cur = 1; // At least 1 when there is an element
    int first;
    int second;
    int cur_first; 

    cur_first = arr[0];

    for (int i = 0; i < size-1; i++) {
        if (arr[i] == arr[i+1] -1) {
            cur ++;
        }
        else {
            if (cur > max) {
                max = cur;
                first = cur_first;
                second = arr[i];
            }
            cur = 1;
            cur_first = arr[i+1];
        }
    }
    if (cur > max) {
        cur = max;
        first = cur_first;
        second = arr[size-1];
    }
    return max
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...