免费注册 查看新帖 |

Chinaunix

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

问一道算法题:求绝对值最小的数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-16 20:39 |只看该作者 |倒序浏览
求集合中和的绝对值最小的三个数:
一个集合,例如{1,0,2,-66,-89}
那么输出应该是:{1,0,2},因为在这个集合中,这三个数的和的绝对值最小。

论坛徽章:
0
2 [报告]
发表于 2008-09-16 21:10 |只看该作者
http://zhidao.baidu.com/question/25273262.html
不过如何让算法更优, 就需要动点脑筋了

论坛徽章:
0
3 [报告]
发表于 2008-09-16 21:20 |只看该作者
用DP吧,应该跟这个问题属于同一类问题
http://blog.chinaunix.net/u/18517/showart_587783.html

论坛徽章:
0
4 [报告]
发表于 2008-09-16 21:34 |只看该作者
这个算法稍微有些问题,应该修改成:
将原数组按符号分为两组:X中存所有的正数,Y中存所有的负数。
计算从X中取三个数的和的绝对值最小值;
计算从Y中取三个数的最小值;
计算从X中取两个数,Y中取一个数的最小值;
计算从X中取一个数,Y中取两个数的最小值;
上面所有情况中的最小值就是目标。
但是,按照这样做的话,量级是O(n*n)的。

原帖由 scutan 于 2008-9-16 21:10 发表
http://zhidao.baidu.com/question/25273262.html
不过如何让算法更优, 就需要动点脑筋了

论坛徽章:
0
5 [报告]
发表于 2008-09-16 22:26 |只看该作者
原帖由 tyc611 于 2008-9-16 21:20 发表
用DP吧,应该跟这个问题属于同一类问题
http://blog.chinaunix.net/u/18517/showart_587783.html

那最优子结构是什么呢?

论坛徽章:
0
6 [报告]
发表于 2008-09-16 23:12 |只看该作者
还不如先遍历一遍,把负的变正的,然后用N个数中最大K个数的经典方法来求

论坛徽章:
0
7 [报告]
发表于 2008-09-16 23:29 |只看该作者
原帖由 hejiangx 于 2008-9-16 23:12 发表
还不如先遍历一遍,把负的变正的,然后用N个数中最大K个数的经典方法来求

这样不能保证最小啊。。

论坛徽章:
0
8 [报告]
发表于 2008-09-17 00:17 |只看该作者
绝对值后排序?

论坛徽章:
0
9 [报告]
发表于 2008-09-17 00:17 |只看该作者
啊 看错题了

[ 本帖最后由 wilbur512 于 2008-9-17 00:22 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-09-17 00:21 |只看该作者
啊 看错题了

[ 本帖最后由 wilbur512 于 2008-9-17 00:22 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP