最長可整合陣列

2021-07-16 18:29:48 字數 629 閱讀 7657

先給出可整合陣列的定義。如果乙個陣列在排序之後,每相鄰兩個數差的絕對值都為1,則該陣列為可整合陣列。例如,[5,3,4,6,2]排序之後為[2,3,4,5,6],符合每相鄰兩個數差的絕對值都為1,所以這個陣列為可整合陣列。給定乙個整型陣列arr,請返回其中最大可整合子陣列的長度。例如,[5,5,3,2,6,4,3]中最大可整合子陣列為[5,3,2,6,4],所以返回5。

分析:判斷乙個子陣列是否為可整合,只需用雜湊表判斷是否有重複元素,無重複元素判斷最大值減去最小值是否等於陣列長度即可

#include

#include

#include

#include

using

namespace

std;

int maxlen(vector

&nums)

else

break; //找到重複值,直接退出

}m.clear(); //注意要清空雜湊表

}return res;

}int main()

; cout

<< maxlen(v) << endl;

}

最長可整合子陣列

先給出可整合陣列的定義 如果乙個陣列arr在排序之後,從最小值到最大值的順序中,每相鄰兩個數之間差的絕對值都為1,則arr為可整合陣列。例如 arr 再排序之後為 排序後符合每相鄰兩個數之間差的絕對值都為1,所以arr是可整合陣列。給定乙個整形陣列arr,請返回其中長度最大的可整合子陣列的長度。5,...

最長的可整合子陣列的長度

一 題目描述 先給出可整合陣列的定義。如果乙個陣列在排序之後,每相鄰兩個數差的絕對值都為1,則該陣列為可整合陣列。例如,5,3,4,6,2 排序之後為 2,3,4,5,6 符合每相鄰兩個數差的絕對值都為1,所以這個陣列為可整合陣列。給定乙個整型陣列arr,請返回其中最大可整合子陣列的長度。例如,5,...

最長的可整合子陣列的長度

題目 先給出可整合陣列的定義。如果乙個陣列在排序後,每相鄰兩個數的差的絕對值都是1,則該陣列為可整合陣列。例如,5,3,4,6,2 排序之後為 2,3,4,5,6 符合條件,所以這個陣列為可整合陣列。給定乙個整型陣列arr,請返回其中最大可整合子陣列的長度。例如,5,5,3,2,6,4,3 的最大可...