獲取乙個陣列中最長的連續的元素序列

2021-07-25 20:09:41 字數 850 閱讀 3855

題目描述:獲取乙個陣列中最長的元素序列。例如,給定了[31,6,32,1,3,2],其中最長的連續的元素序列是[1,2,3],最後返回其長度3

分析:判斷當前節點是屬於乙個序列的,只需判斷前乙個或者後乙個節點也在序列中即可,即判斷array[i]-1和array[i]+1也是位於這個序列中即可。如果這樣判斷的話,就需要儲存過程中的部分值,為此,可以採用雜湊表來儲存計算的中間值。

#include "stdafx.h"

#include

#include

#include

using namespace std;

struct bound

};int lengthoflongestconsecutivesequence(vector&num)

local=num[i];

int low=num[i],high=num[i];

if(table.count(local-1))

if(table.count(local+1))

table[low].high=table[local].high=high;

table[high].low=table[local].low=low;

if(high-low+1>maxlen)

}return maxlen;

}int _tmain(int argc, _tchar* argv)

;vectorarr2(6);

for(int i=0;i<6;i++)

int sum=lengthoflongestconsecutivesequence(arr2);

coutreturn 0;

}

求乙個陣列的最長連續子串行

分析 如果允許o nlogn 的複雜度,那麼可以先排序,可是本題要求o n 由於序列裡的元素是無序的,又要求o n 首先要想到用雜湊表。用乙個雜湊表unordered mapused 記錄每個元素是否使用,對每個元素,以該元素為中心,往左右擴張,直到不連續為止,記錄下最長的長度。class solu...

js 獲取乙個陣列中的部分元素

可以用array中自帶的方法 arrayobj.shift shift 方法可移除陣列中的第乙個元素並返回該元素。例如 var ary 1,2,3,4 var a ary.shift a 1 ary 2,3,4 arrayobj.slice start,end slice 方法返回乙個 array ...

乙個陣列有 N 個元素,求連續子陣列的最大和

輸入描述 輸入為兩行。第一行乙個整數n 1 n 100000 表示一共有n個元素 第二行為n個數,即每個元素,每個 整數都在32位int範圍內。以空格分隔。輸出描述 所有連續子陣列中和最大的值。示例1 輸入3 1 2 1輸出3 我們用pos代表即將要加的數,sum從0開始一直 pos,並每次進行判斷...