陣列的最長連續的序列

2021-06-18 05:58:07 字數 638 閱讀 1599

問題:給乙個包含數字的陣列,求該陣列的最長的子陣列(這裡說的子陣列是下標連續),要求這個子陣列中的陣列是乙個連續的序列(不需要排好序)。例如,給乙個陣列[4; 5; 1; 5; 7; 6; 8; 4; 1],最長的滿足條件的子陣列是[5; 7; 6; 8; 4]。因為該子陣列中,5; 7; 6; 8; 4是乙個連續的序列。

思路:可以使用動態規劃,滿足條件的子串行,首先子串行中不能有重複出現的數字,否則不連續,其次子串行的最大值和最小值之差max-min+1應該等於這個序列中數字的個數,(因該序列中不存在重複數字,那麼[min,max]區間的數,都回出現一次)。使用動態規劃記錄區間的最大值和最小值,然後根據條件判斷是否滿足要求。

實現如下:

struct element;

//動態規劃思想:dp[i][j](i<=j)表示陣列中a[i。。。j]之間的資訊

int maxseq(int* pdata, unsigned int n)

} else

} if (maxseqcount} for (int i=0; idelete dp;

for (int i=maxseqstart; i-maxseqstartcout

}

陣列中的最長連續子串行

陣列中的最長連續子串行 給定無序陣列arr,返回其中最長的連續序列的長度 要求值連續,位置可以不連續,例如 3,4,5,6為連續的自然數 輸入描述 輸出兩行,第一行包括乙個整數n 1 n 1 05 n 1 leq n leq10 5 n 1 n 105 第二行包含n個整數,分別代表arr i 1 a...

陣列 128 最長連續序列 20200523

本題目在位元組跳動的面試過程 現過,所以在此進行總結一下。給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。本題目要求找到最長連續序列的長度,但是陣列尚未排序...

最長連續序列

題目 給定乙個未排序的整數陣列,找出最長連續序列的長度。例子 給出陣列 100,4,200,1,3,2 這個最長的連續序列是 1,2,3,4 返回所求長度 4。挑戰 要求你的演算法複雜度為o n 方法 將序列中的所有數存到乙個unordered set中。對於序列裡任意乙個數a i 我們可以通過se...