关于循环遍历取最小值问题

liu312312 2012-10-29 04:00:15
int[] a = {1,2,3,4,5};
int[] b ={11,12,13,14,15,16,17,18,19};

现在又2个数组我现在想 取得他们相减后的最小值 例如1-11=-10 1-12=-11 依次类推,最后我会得到5个对应关系1-->11;
2-->12;3-->13;4-->14;5-->15;
我应该怎么做呢?
...全文
745 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyscsnd 2012-10-31
  • 打赏
  • 举报
回复
楼主下次题意要言简意赅,直中要害啊,不然你又要解释半天
liu312312 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

找出a数组的最小值 然后找出b的最大值 最后a-b ok了
[/Quote]
不是 这个是我再别的算法简化来的, 只能是a中的元素与b中的元素都计算一遍~~ 然后a中的每个元素找到最小的一个~~~
竹林风声 2012-10-31
  • 打赏
  • 举报
回复
看来各位大神都没看明白楼猪的意思啊
achengpeter 2012-10-30
  • 打赏
  • 举报
回复
双重for循环,重复值取消掉,在做一个min运算
风行傲天 2012-10-30
  • 打赏
  • 举报
回复
双重for循环,外加一变量存放最小值数组,每次执行后将最小值放在变量中
小米稀饭 2012-10-30
  • 打赏
  • 举报
回复
找出a数组的最小值 然后找出b的最大值 最后a-b ok了
qqid88147418 2012-10-30
  • 打赏
  • 举报
回复
就是一个代码的一个数组的最小值减去另一个数组的最大值 一共有两个 取出最小的就是结果了 !
liu312312 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

我晕死,
去b数组中找5个最大值,组层倒序排列的栈,遍历a数组,将a数组的值去减去栈等的值,同时出栈,这不就完了.

例如 int[] b ={11,12,13,14,15,16,17,18,19};
找到最大5个值,组成一个倒序的栈b'={19,18,17,16,15};//可以采用数组实现.

for(int i=0,size = a.length;i<size;i++){
S……
[/Quote]

这个不能排序, 也不能找出最大值,这个是再别的算法分离出来的 我只是简化了下, 只能遍历,而且每个元素都必须能算下
  • 打赏
  • 举报
回复
我晕死,
去b数组中找5个最大值,组层倒序排列的栈,遍历a数组,将a数组的值去减去栈等的值,同时出栈,这不就完了.

例如 int[] b ={11,12,13,14,15,16,17,18,19};
找到最大5个值,组成一个倒序的栈b'={19,18,17,16,15};//可以采用数组实现.

for(int i=0,size = a.length;i<size;i++){
System.out.println(a[i]+" - "+ b'[i])
}
为,1-19 , 2-18, 3-17, 4-16 , 5-15;
成长之路2020 2012-10-30
  • 打赏
  • 举报
回复
没有看明白,
BUoKA674936968 2012-10-30
  • 打赏
  • 举报
回复
看起来很难的样子啊!
liu312312 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

就是一个代码的一个数组的最小值减去另一个数组的最大值 一共有两个 取出最小的就是结果了 !
[/Quote]

不是这样的~~~~
liu312312 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

双重for循环,重复值取消掉,在做一个min运算
[/Quote]
我也是想for循环的~~ 但是这个会不会有性能问题呢~~ 这个只是算法的简化, 到时候会有至少6千万的数据~~~
zly361814478 2012-10-29
  • 打赏
  • 举报
回复
嗯,知道了。等会写代码给你 我先吃饭。
wonkju 2012-10-29
  • 打赏
  • 举报
回复
不明白题目的意思!
liu312312 2012-10-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

不就是相当a就不用判断大小了, 直接判断b数组里最大的就不行了。
[/Quote]

a中的元素不用判断大小 而是每个元素都要与b中的元素计算,是应该这样的
数组a中的元素101,遍历数组b中的所有元素,算法是相减,101-11=90,101-12=89;一次类推,等到一个相减最小的一组数,这组数就是101-19;同理102也是同样的算法 得到的也是一组相减最小的,102-19; 但是同时要注意,b数组中的元素只能对应一个a数组中的元素,也就是101-19 =82;19已经与101对应了,所以102-19=83虽然是在102减去b数组中所有元素中是最小的,但是19不能与102对应,只能是18与之对应,,,一次类推,最后应该得出5个对应的数~~~
zly361814478 2012-10-29
  • 打赏
  • 举报
回复
不就是相当a就不用判断大小了, 直接判断b数组里最大的就不行了。
liu312312 2012-10-29
  • 打赏
  • 举报
回复
不好意思我好像没有描述清楚 ,我是这样的 ,就是a数组中的1遍历一遍b中的所有元素然后得出个最小值输出, a中的元素2再遍历所有b中的元素,得到最小的输出,依次类推,但是还有个条件就是 b中的元素只能对应一个a中的元素,a中的元素可以对应b中的多个元素。
zly361814478 2012-10-29
  • 打赏
  • 举报
回复
你的意思是 假如 我第一次选择a数组最小值为1,然后再选择b数组最小值为11,
第二次选择a数组最小值为2, 然后再选择b数组最小值为12.
是这意思么
wby13579 2012-10-29
  • 打赏
  • 举报
回复
到底是取相减的结果是最小值的组合,还是其他神马?反正我是没看懂题目

如果是前面的话好办,两个数组全遍历下,取最大值和最小值就是了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧