Java 比较数组的元素
假设我有一个数组Java 比较数组的元素,java,arrays,Java,Arrays,假设我有一个数组v1[]={1,3,4,5}和v2[]={5,3,4,6}。我想比较v1和v2的元素,得到最大值作为输出(最佳解决方案)。如果V1和V2是数组的长度 我试过了 for(i=0;i=0;i--)//用于v1中的项 for(k=V2;j>=0;j--)//对于V2中的项 如果(v1[i],您可以简单地对两个数组进行排序,并获得最大(最后一个索引元素)值,然后像这样比较它们 int[] v1= {1, 3, 4, 5}; Arrays.sort(v1); int v1Max = v
v1[]={1,3,4,5}
和v2[]={5,3,4,6}
。我想比较v1和v2的元素,得到最大值作为输出(最佳解决方案)。如果V1和V2是数组的长度
我试过了
for(i=0;i=0;i--)//用于v1中的项
for(k=V2;j>=0;j--)//对于V2中的项
如果(v1[i],您可以简单地对两个数组进行排序,并获得最大(最后一个索引元素)值,然后像这样比较它们
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);
}
如果希望两个数组中都存在最大元素,可以尝试以下操作:
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);
int max=v1[0];
对于(int index=1;index最大值)
max=v1[指数];
}
System.out.println(“v1=“+max”);
max=v2[0];
对于(int index=1;index最大值)
max=v2[指数];
}
System.out.println(“v2=“+max”);
即使你的循环和不工作的东西可能会按原样工作(我真的不知道,因为我不想浪费时间……其他人已经回答了这个问题),你的循环也不会正常工作,因为你没有大括号
因为for循环和if语句中有多行,所以必须有它们
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];
}
}
}
}
for(i=0;i=0;i--){//for v1中的项
对于(k=V2;j>=0;j--){//对于V2中的项
如果(v1[i]如您所述,您希望分别获得每个循环的最大值,那么您需要的是:
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];
}
}
int maxInV1=v1[0];
对于(int index=1;indexmaxInV1){
maxiv1=v1[索引];
}
}
int maxiv2=v2[0];
对于(int index=1;indexmaxiv2){
maxiv2=v2[索引];
}
}
请注意,有更有效的解决方案可用,但考虑到您的代码中存在的总体混乱,我认为您应该首先学习这一基本方法。我很抱歉地说,您在问题中发布的代码远不是解决方案,因为其中存在许多问题
还要注意的是,这是@Sujay答案的一个稍加修改的版本,只是使用了两个不同的变量。您可能想提及您正在使用的语言…您应该知道只有行int V1=V1[i];
在您的if
条件中-行int V2=V2[i];
超出了它的范围。你能给出一些示例输出吗。你只是想要两个数组的并集的最大值吗?@shiro chan为什么要这样做?只需使用两个循环。我建议你编写一个max()
method,它返回单个数组的最大元素。然后,您可以对两个数组调用此方法,同时只编写一次代码来查找最大值。我可能建议不要为了得到最大元素而对整个数组进行修改。@oldrinb是的,我只是展示了一个非常基本的so我可以用一个简单的注释说与你在整个答案中所说的相同的话:使用大括号{
和}
谢谢你的陈述。你的其余答案几乎没有帮助。正如OP在上面的评论中所说:我希望我的输出为v1=5和v2=6,因为它们都是数组中最大的项
。我添加了另一个答案,它将不同数组中的最大值分开。@SimonAndréForsberg:谢谢你的提醒,我没有深入到评论部分来回答这个问题:)更新了!
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];
}
}