免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7312 | 回复: 27
打印 上一主题 下一主题

[算法] 昨天面试的一道上机笔试题,哪位朋友有好的思路吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-03 10:18 |只看该作者 |倒序浏览
本帖最后由 BuTa丶潇 于 2013-04-03 13:02 编辑

昨天面试,上机遇到这个题目,觉得挺有意思,大家有什么好的想法吗?
一个数组里面从小到大排列了大概10w级别的数据,有整数也有浮点数,也可能有相等的。现在给出一个区间[a,b](b>a,a和b可能在数组,也可能不在数组里面),找出满足这个区间的数据在数组里面的下标。

我当时的思路是"二分法+递归",可是实现后的代码冗余,而且测试时效率有点低..
代码当时在面试机里没拿回来,而且写的比较长,就不献丑了

如果大家遇到这种题,会用什么方法解决呢,希望各位朋友分享下自己的意见..{:3_193:}

/*------------------------------------------------------------------
看了大家的回复,都说木有看懂..是我的表达能力这么差么 .....
我举个例子好了...
如:数组元素有: 3 , 3.5 , 5.7 , 6.8 , 11 , 15.4 这6个元素, 现给出一个区间如[0.3 , 10]  那么这个题目的答案就是"下标为0到3"。
                                                                                      若给出区间如[ 1 , 2]或[19.4 , 22],-------------"不存在"。
                                                                                      若给出区间如[3.5 , 17], 那么这个答案就是"下标为1到5"。
                                                                                      .......

整个题目就是这个样子了。还是实在看不懂的话 就算了。唉,我就是想请教下大家有什么好的思路或者解决办法,结果大家都说看不懂,太伤心了。。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [报告]
发表于 2013-04-03 10:30 |只看该作者
有整数也有浮点数
------ 这话令人费解

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
3 [报告]
发表于 2013-04-03 10:35 |只看该作者
看不懂,难道不就是 两次二分查找 吗?
如果用C++的话,直接用 std::equal_range 函数就行了

论坛徽章:
0
4 [报告]
发表于 2013-04-03 11:14 |只看该作者
bruceteen 发表于 2013-04-03 10:30
有整数也有浮点数
------ 这话令人费解


不好意思,是我表述的有问题吗..题目的大概意思就是这样,可能是我说的不是太清楚..我只是想把这个问题说的更详细点...
那这样吧 规定死了 全是小数,就算是整数 也是"3.00"等类似的形式...
我当时是用的double数组,然后自己用rand创建了一个10w的数组存储测试的...没想到把整数和浮点数区别的这么开..

这个上机题 测试条件什么的都是自己搭配的,没有什么限制..  我交卷的时候,感觉他主要看的是里面的算法吧,具体的细节并没太在意 ..

论坛徽章:
0
5 [报告]
发表于 2013-04-03 11:38 |只看该作者
我觉得首先应该看这两个区间是否有交集。如果没有,什么也别说。如果有,那么取出这个交集。然后最简单的就是简单的循环对比了。或者hash以及布隆过滤器。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
6 [报告]
发表于 2013-04-03 12:19 |只看该作者
本帖最后由 cokeboL 于 2013-04-03 13:23 编辑

回复 5# wlmouse


    阿弥陀佛

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
7 [报告]
发表于 2013-04-03 12:20 |只看该作者
本帖最后由 cokeboL 于 2013-04-03 13:23 编辑

回复 5# wlmouse


您先去解决下

    http://bbs.chinaunix.net/thread-4074527-1-1.html

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
8 [报告]
发表于 2013-04-03 12:46 |只看该作者
没看懂, if else?

论坛徽章:
0
9 [报告]
发表于 2013-04-03 12:48 |只看该作者
回复 7# cokeboL


    也许我没表述清楚,或者我理解错了题目,如果你认为不对可以指出来,别上来就搞笑扯淡。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
10 [报告]
发表于 2013-04-03 13:16 |只看该作者
本帖最后由 cokeboL 于 2013-04-03 13:20 编辑

回复 9# wlmouse




100w级可能就是为了让提高效率,你说遍历不是开玩笑呢

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP