首页 > 解决方案 > 我怎样才能找到最大的数字串?

问题描述

有数组元素,例如: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 and 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)。

标签: c++stringnumbers

解决方案


以下函数将 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
}

推荐阅读