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; 
我应该怎么做呢? 

解决方案 »

  1.   

    你的意思是  假如 我第一次选择a数组最小值为1,然后再选择b数组最小值为11,
                       第二次选择a数组最小值为2, 然后再选择b数组最小值为12.
    是这意思么
      

  2.   

    不好意思我好像没有描述清楚 ,我是这样的 ,就是a数组中的1遍历一遍b中的所有元素然后得出个最小值输出, a中的元素2再遍历所有b中的元素,得到最小的输出,依次类推,但是还有个条件就是 b中的元素只能对应一个a中的元素,a中的元素可以对应b中的多个元素。
      

  3.   


    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个对应的数~~~
      

  4.   

    双重for循环,外加一变量存放最小值数组,每次执行后将最小值放在变量中
      

  5.   

    双重for循环,重复值取消掉,在做一个min运算
      

  6.   

    我也是想for循环的~~ 但是这个会不会有性能问题呢~~ 这个只是算法的简化, 到时候会有至少6千万的数据~~~ 
      

  7.   

    我晕死,
    去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;
      

  8.   

    找出a数组的最小值 然后找出b的最大值 最后a-b ok了
      

  9.   

    不是 这个是我再别的算法简化来的, 只能是a中的元素与b中的元素都计算一遍~~ 然后a中的每个元素找到最小的一个~~~