关于python

我有很长的一列数据: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,以此类推,要求求出所有的这样的断点。最好不要遍历啊,数据量太大,有啥优化的法子没?求各位大神指点~


wolvvi
浏览 1018回答 1
1回答

叫我皮卡丘

有一点点奇怪的思路,可以借助“二分”的思想,比如你的例子: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,和实际情况相符,说明不存在断点,整段可以舍弃。说得有点乱,不知道你看懂没有
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python