最長平台問題

2021-06-21 07:04:48 字數 732 閱讀 4557

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

先說說我的想法吧,很顯然,這樣乙個陣列可以看成是有連續幾個平台組成的,當從乙個平台進入另乙個平台的標誌就是數字不同了,而在這時就可以統計上一平台的長度,再講其與之前統計的最長平台長度進行比較,若更大則替換~下面附上源**

但是事實上最簡的做法不是這樣的~(當然不是我原創的啦啦啦~):

它的想法其實很簡單,就是在遍歷陣列的時候用,講當前元素與當前最長平台的長度之前的元素進行比較,若還是相等的,因為元素都已經排好序了,則之前的長度加是當前的元素,那麼最長的平台長度則可以在原來的基礎上加一了!通過對整個陣列的遍歷,而求得最長的長度。

和這種解法相比,我的方法就差好多了.....因為我一方面要比較當前元素是否與前乙個元素相等,從而判斷是不是仍在乙個平台中,並且需要乙個當前平台的計數器,在進入另乙個平台之後還需要將當前平台的長度與之前的最長平台長度進行比較。自然**的長度就長好多了qaq

最長平台問題

該問題出自 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...

最長平台問題 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...