【发布时间】:2021-10-14 13:29:36
【问题描述】:
有一大堆袜子,必须按颜色配对。给定一个表示每只袜子颜色的整数数组,确定有多少双颜色匹配的袜子。 所以我使用了这种方法,但是我得到了不同的输出,我想知道当我在 Java 中使用 for-each 循环同时从用户那里获取值时输出不同的原因。
示例 1:
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int[] hash = new int[300];
for(int i=0; i<n; i++){
hash[in.nextInt()]++;
}
long ans=0;
for(int p: hash){
ans+=p/2;
}
System.out.println(ans);
}
}
这里我得到了输出2。
示例 2:
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int hash[]={1,2,1,2,3,1,2};
long ans=0;
for(int p: hash){
ans+=p/2;
}
System.out.println(ans);
}
}
在这里我得到了输出4。
为什么会这样?
【问题讨论】:
-
在每个循环之前打印你的哈希数组