锁定老帖子 主题:一道逻辑题:我拿走了哪个数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-08-05
二分法不行,由于数据不是连续的;
异或方法可行; 如果可以当作连续的话,应该是判断相邻两个是否相差1最为方便 |
|
返回顶楼 | |
发表时间:2014-08-06
rmzdb 写道 jahu 写道 rmzdb 写道 zhang_guiren 写道 rmzdb 写道 jahu 写道 需要这么复杂吗?
使用链表的数据格式, 用二分就简单的能找到这个数了, 你真搞笑 二分? 都不知道寻找的目标 怎么二分啊 二分法可以,第一次取出1-5000个数字,放入数组,看其长度是否等于5000,不等于则继续二分1-5000,等于则取5000-10000放入数组,重复上述过程 这样做 也是基于连续数字的 前提:就是中间值一定是前一半 后一般的 这样确实可以。 谁说要基于连续数字啊,二分,简单下,效率不是最高,但是数据量大之后效率是最高的一个思路 你告诉我怎么确定中间值??? 怎么取这个1-5000个数字啊 既然你都是确定是1-5000个数字,为什么长度还不确定是5000呢? 你要知道是长度的中间而不是数值的中间值 |
|
返回顶楼 | |
发表时间:2014-08-06
smiky 写道 rmzdb 写道 jahu 写道 rmzdb 写道 zhang_guiren 写道 rmzdb 写道 jahu 写道 需要这么复杂吗?
使用链表的数据格式, 用二分就简单的能找到这个数了, 你真搞笑 二分? 都不知道寻找的目标 怎么二分啊 二分法可以,第一次取出1-5000个数字,放入数组,看其长度是否等于5000,不等于则继续二分1-5000,等于则取5000-10000放入数组,重复上述过程 这样做 也是基于连续数字的 前提:就是中间值一定是前一半 后一般的 这样确实可以。 谁说要基于连续数字啊,二分,简单下,效率不是最高,但是数据量大之后效率是最高的一个思路 你告诉我怎么确定中间值??? 怎么取这个1-5000个数字啊 既然你都是确定是1-5000个数字,为什么长度还不确定是5000呢? 你要知道是长度的中间而不是数值的中间值 什么都不说了,请他贴代码出来。是否可行一运行就知道 |
|
返回顶楼 | |