code第一部分陣列 6 陣列中最長連續序列

2022-05-23 05:27:06 字數 1327 閱讀 3737

given an unsorted array of integers, find the length of the longest consecutive elements sequence.

for example, given [100, 4, 200, 1, 3, 2], e longest consecutive elements sequence is [1,

2, 3, 4]. return its length: 4.

your algorithm should run in o(n) complexity

老樣子,先分析,還是先不考慮約束條件,解決題目了再說;

解決方案1

先排序,直接呼叫stl中sort函式排序,再遍歷查詢最長的連續子串行;時間複雜度為o(n²)

解決方案2

使用hash表;用乙個雜湊表 unordered_mapused 記錄每個元素是否使用,對每個元素,以該

元素為中心,往左右擴張,直到不連續為止,記錄下最長的長度。時間複雜度為o(1)

#include #include 

#include

using

namespace

std;

int longestconsecutive1(int a,int

n)

else

break

; }

intk;

for (k = i-1; k>=0; k--)

else

break

; }

longest=max(longest,length);

}return

longest;

}int longestconsecutive(int a,int

n)

int right=a[i]+1

;

while(mp.count(right)&&mp[right]!=0

)

}if(resres=sum;

}return

res;

}int

main()

;

int ans1=longestconsecutive1(a,7

); cout

<<"

ans1 is

"int ans2=longestconsecutive(a,7

); cout

<<"

ans2 is

"}

測試通過!

ES6 第一部分

1.ecmascrpit是js的語言標準 現在es到11了,但是大版本是es6 2.es6的目標 使js能編寫複雜的大型程式 3.版本特色 常量,作用域,物件 非同步處理,類,繼承 1.use strict 後來被放棄了,因為會讓以前的 出現問題。2.禁止this指向window。顯示undefin...

Axure RP 第一部分

axure rp是乙個專業的快速原型設計工具。axure 發音 ack sure 代表美國axure公司 rp則是rapid prototyping 快速原型 的縮寫。axure rp是美國axure software solution公司旗艦產品,是乙個專業的快速原型設計工具,讓負責定義需求和規格...

演算法知識梳理 4 陣列第一部分

在乙個二維陣列中,每一行都按照從左到右遞增的順序,每一列都按照從上到下遞增的順序排序,編寫乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷該整數是否在二位陣列中。首先要確定整數存在於陣列的乙個前提條件 如果最小的元素 左上角 大於d,或者最大的元素 右下角 小於d,那麼可以確定矩陣中不存在d。這裡需...