最長平台問題

2021-06-03 10:07:33 字數 586 閱讀 1803

該問題出自《c語言名題精選百則技巧篇》。大意是:找出一段有序數字中,找出最長而且連續的數字。比如在1,2,2,3,3,3,4,5,5,6中最長平台即為3,長度也是3。

我的**如下:

#include #include int main()

; //in order

result=x[0];

int size=sizeof(x)/sizeof(int); //the number of the integer array

for(i=0;i+l

我的想法非常樸素:從第乙個數開始,l初始為0,遍歷尋找第乙個數的長度。例子中第乙個數長度為1,進入第二個數,得l=2。以此類推,在o(n2)的時間複雜度內得到結果。

但是書上的演算法**更少,時間複雜度卻更低。

書中**如下:

#include #include int main()

; //in order

int size=sizeof(x)/sizeof(int);

int result=0;

int l=1;

for(int i=1;i

總結:演算法的學習,思考是關鍵。

最長平台問題

問題 已知乙個已經從小到大排序的陣列,這個陣列中的乙個平台就是連續的一串值相同的元素,並且這一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中的1,2.2,3.33,4,5.5,6都是平台。試編寫乙個程式,接受乙個陣列,把這個陣列中的最長平台找出來。在上面的例子中3.3.3就是該陣...

最長平台問題 C實現

此問題來自 c語言名題精選百則 問題1.1最長平台 plateau.c 已知乙個從小到大排序的陣列,這個陣列中的乙個平台 plateau 是連續的一串值相同的元素,並且這一串元素不能再延伸,例如,在1,2,2,3,3,3,4 5 5 6中1,2.2,3.3.3,4,5.5,6都是平台,編寫乙個程式接...

1116 最長平台

時間限制 1000 ms 記憶體限制 65536 kb 提交數 14661 通過數 4430 已知乙個已經從小到大排序的陣列,這個陣列的乙個平台 plateau 就是連續的一串值相同的元素,並且這一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,6中1,2 2,3 3 3,4,5 5...