我有很長的一列數據:2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22.....數據量很大,有沒有一種快速的方法,找到前后數據差值不為1的斷點的index,即(2,3,4)(6,7,8,9...)那么斷點index為3,以此類推,要求求出所有的這樣的斷點。最好不要遍歷啊,數據量太大,有啥優化的法子沒?求各位大神指點~
1 回答
已采納

叫我皮卡丘
TA貢獻23條經驗 獲得超13個贊
有一點點奇怪的思路,可以借助“二分”的思想,比如你的例子:2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23
我添個數總共20個,先二分成 2,3,4,6,7,8,9,10,11,12 和 13,14,15,16,17,18,19,21,22,23,如果這10個數之間沒斷點的話,第一個數是2那么最后一個數應該是11,同理,第一個數是13那么最后一個數是22,但是與我們實際情況不符合,說明之間存在斷點,繼續二分,先看2-12,分成 2,3,4,6,7 和8,9,10,11,12,第一個數是2那么最后一個是6,但是實際是7說明存在斷點,后半截開始是8最后是12,和實際情況相符,說明不存在斷點,整段可以舍棄。
說得有點亂,不知道你看懂沒有
添加回答
舉報
0/150
提交
取消