为了账号安全,请及时绑定邮箱和手机立即绑定

关于python

关于python

wolvvi 2018-04-29 18:43:22
我有很长的一列数据: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,和实际情况相符,说明不存在断点,整段可以舍弃。

说得有点乱,不知道你看懂没有

查看完整回答
反对 回复 2018-04-29
  • 1 回答
  • 0 关注
  • 1017 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信