比较数组的元素

时间:2012-09-14 22:06:02

标签: java arrays

嗨,假设我有一个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];

但是无法正常工作。请帮忙。

3 个答案:

答案 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的答案的略微修改版本,只使用两个不同的变量。