嗨,假设我有一个v1[] = {1, 3, 4, 5}
和v2[] = {5, 3, 4, 6}
的数组。我想比较v1和v2的元素,并获得最大值作为输出(最佳解决方案)。如果V1和V2是数组的长度
我试过了
for(i = 0; i <=n; i++) //for items of an array
for( j = V1; i >= 0; i--) //for items in v1
for( k = V2; j >= 0; j--) //for itemns in v2
if(v1[i] <= j && v2[i] <= k)
int V1 = v1[i];
int V2 = v2[i];
但是无法正常工作。请帮忙。
答案 0 :(得分:2)
如果你想要从数组中获得最大元素,你可以尝试这样的事情:
int max = v1[0];
for(int index = 1; index < v1.length; index++){
if(v1[index] > max)
max = v1[index];
}
System.out.println("v1 = "+max);
max = v2[0];
for(int index = 1; index < v2.length; index++){
if(v2[index] > max)
max = v2[index];
}
System.out.println("v2 = "+max);
答案 1 :(得分:0)
你可以简单地对两个数组进行排序并得到最大的(最后一个索引元素)值并像这样比较它们
int[] v1= {1, 3, 4, 5};
Arrays.sort(v1);
int v1Max = v1[v1.length-1];
int[] v2 = {5, 3, 4, 6};
Arrays.sort(v2);
int v2Max = v2[v2.length-1];
if(v1Max>v2Max) {
System.out.println(v1Max);
}
if(v2Max>v1Max) {
System.out.println(v2Max);
}
答案 2 :(得分:0)
正如您所说,您希望分别获得每个循环的最大值,您要找的是:
int maxInV1 = v1[0];
for(int index = 1; index < v1.length; index++) {
if(v1[index] > maxInV1) {
maxInV1 = v1[index];
}
}
int maxInV2 = v2[0];
for(int index = 1; index < v2.length; index++) {
if(v2[index] > maxInV2) {
maxInV2 = v2[index];
}
}
请注意,有更高效的解决方案,但考虑到代码中的整体混乱,我认为您应该首先学习这种基本方法。我很遗憾地说,但是你在问题中发布的代码远远不是一个解决方案,因为它有很多问题。
另请注意,这是@Sujay的答案的略微修改版本,只使用两个不同的变量。