~~求解~~用动态规划算法求两数组各元素间差的最小值,JAVA代码或方法思路

~~求解~~用动态规划算法求两数组各元素间差的最小值,并要记录是哪两个元素之间相减的,多谢了,多给20财富值。... ~~求解~~用动态规划算法求两数组各元素间差的最小值,并要记录是哪两个元素之间相减的,多谢了,多给20财富值。 展开
 我来答
杨鹏程万里无云
2013-11-26
知道答主
回答量:79
采纳率:0%
帮助的人:25.7万
展开全部
import java.util.Arrays;

public class Test {

public static void getCha(int [] a,int []b){
int min =Integer.MAX_VALUE;
int sss=0;
int kkk = 0;
int c = 0;
int d = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
int temp = Math.abs(a[i]-b[j]);
if(temp<min){
min = temp;
sss = a[i];
kkk = b[j];
c=i;
d=j;
}
}

}
System.out.println("最大差距:"+min+"数组A["+c+"]"+sss+"数组B["+d+"]"+kkk);

}
public static void main(String[] args) {
int []a = new int[8];
int []b = new int[12];
for (int i = 0; i < a.length; i++) {
a[i] = (int)( Math.random()*100);
}
System.out.println(Arrays.toString(a));;
for (int i = 0; i < b.length; i++) {
b[i] = (int) (Math.random()*100);
}
System.out.println(Arrays.toString(b));
getCha(a,b);
}

}
更多追问追答
追问
非常感谢你的耐心解答,希望你能再改一下,输入的两个数组是任意升序的,最后输出的是所有对应的(i, j)。字太多了,在评论里
追答
额  你好歹给点分啊 而且一开始你就应该说清楚  浪费我时间……如果是升序更简单 建议自己写  输出哪些过程更简单
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无成不归
2013-11-26 · TA获得超过192个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:85.1万
展开全部
最简单的思路就是遍历遍历第一个数组,第一个数组的每个元素和第二数组所有元素比较。会得出一个和第一个数组大小相同的数组,取里面最小值即可。如果有需要,可以给你写下代码。
追问
例如:数组A(20,30,50,100,140)和B(25,100,130,150),输出结果为:对应(0,0)差值5;对应(1,0)差值5;对应(2,0)差值25,;对应(3,1)差值0;对应(4,2)差值10;对应(4,3)差值10····就是说求两数组每两项的差值最小的。可以帮我写好么,谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听雨枯荷爱
2013-11-26
知道答主
回答量:27
采纳率:0%
帮助的人:7.5万
展开全部
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int[] temp1 = new int[]{1,3,5,7,9,11};
int[] temp2 = new int[]{2,6,2,3,1,5,4};

int[] result = new int[]{0,0,0};

for(int i = 0;i<temp1.length;i++){
for(int j = 0;j<temp2.length;j++){
int temp = temp1[i]-temp2[j];
if(temp>result[2]){
result[0] = temp1[i];
result[1] = temp2[j];
result[2] = temp;
}
}
}

System.out.println(result[0]+"-"+result[1]+"="+result[2]);
}
}
追问
例如:数组A(20,30,50,100,140)和B(25,100,130,150),输出结果为:对应(0,0)差值5;对应(1,0)差值5;对应(2,0)差值25,;对应(3,1)差值0;对应(4,2)差值10;对应(4,3)差值10····就是说求两数组每两项的差值最小的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式