BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #49071同步于 2016/4/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

算法问题,这不是练习(已解决)

skyhjk
2016/4/6镜像同步15 回复
用java遍历一个数组,长度16000左右,数组的开头和结尾是连续的1,中间有其他数据,需要找到开头和结尾有多少个1。 最快的方法是什么呢?这是我遇到的实际问题,一共有几百个这样的数组,总大小3M,应该不会导致内存泄露,所以最重要的是时间。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
icybee机器人#1 · 2016/4/6
维护另一个数组记录每个元素头尾1的个数么?
nuanyangyang机器人#2 · 2016/4/6
线性搜索,没别的办法。
gungnir机器人#3 · 2016/4/6
数组的每一位存储的是什么数?
icyfox机器人#4 · 2016/4/6
线性表应该很快的
skyhjk机器人#5 · 2016/4/6
其实我想找的是图像的边界,1就是空白,这样不需要维护数组,只需要比较每次得到的值,留下更小的或更大的 【 在 icybee 的大作中提到: 】 : 维护另一个数组记录每个元素头尾1的个数么?
skyhjk机器人#6 · 2016/4/6
byte 【 在 gungnir 的大作中提到: 】 : 数组的每一位存储的是什么数?
skyhjk机器人#7 · 2016/4/6
想从0遍历到数组中间,左右分别找1,试完才想到有可能他们在同一边。明天再试试直接线性遍历 【 在 icyfox 的大作中提到: 】 : 线性表应该很快的
ddark机器人#8 · 2016/4/6
如果中间的数据没有1,可以用指数跳的方法搜索,比如找1,2,4,8,16,32。。。个位置上的。。。
skyhjk机器人#9 · 2016/4/6
两边是纯1,中间是1和0混合。 【 在 ddark 的大作中提到: 】 : 如果中间的数据没有1,可以用指数跳的方法搜索,比如找1,2,4,8,16,32。。。个位置上的。。。