A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范明正 黑马帝   /  2011-8-21 23:30  /  1968 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java如何实现两个数最接近的比较  例如
public int getAdjacent(List <Integer>list,int x);

用list集合里面的元素值跟x比较,首先取单个元素计较,再取两个元素相加比较,直到N个元素相加比较,最后返回最接近x

的数,这个最接近x的数必须比x小,也就是单个比较的话首先先去掉大于x的元素再比较 ,如此类推,直到N个相加输去掉大

于X的数再比较如:

List xlist = new ArrayList();
for(int i=0;i<list.size();i++)
{
if(list.get(i)<x)
{
xlist.add(list.get(i))
}
}

最后用xlist元素的值跟x比较,并把返回的最接近X的值放入最接近X的set中, 如此类推 直到第N个元素相加最接近X的值放

入set中,此时set中保存的是由单个元素到N个元素相加最接近X的值,再用set值去比较 最终返回 最最接近X的值
[ 本帖最后由 范明正 于 2011-08-22  07:45 编辑 ]

3 个回复

倒序浏览
黑马网友  发表于 2011-8-21 23:44:09
沙发
自问自答吗,思路很清晰啊
回复 使用道具 举报
黑马网友  发表于 2011-8-21 23:49:54
藤椅
。。。夜了,晚安。
回复 使用道具 举报
黑马网友  发表于 2011-8-21 23:52:24
板凳
[quote] 原帖由 [i]史卫平[/i] 于 2011-08-21 23:44 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=8016&ptid=1234][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]自问自答吗,思路很清晰啊 [/quote]数据少点还行,一多就不行了,复杂度好像是n*n
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马