请用 java 实现数组中输入的每个元素出现的个数

2015-03-12 09:50:49 +08:00
 jiaqidianbo

输入格式  
输入的第一行包含一个整数n,表示记录条数。  
第二行输入n个整数,依次表示记录中的每个值(1<=n<=1000)。

输出格式  
输出一行,包含n个整数,由空格分隔,依次表示每条记录中的值是第几次出现。

样例输入
5
1 2 1 1 3

样例输出
1 1 2 3 1


请高手们告诉我怎么用java来实现,我是初学者。

public static void main(String args[]) {
Scanner s = new Scanner(System.in);//输入
int n = s.nextInt();//输入第一行有n个整数
int a[] = new int[n];//新建一个n个元素的数组,表述记录中的值

//我的问题就是出在这里,后面不会写下去了,请高手们帮我指导一下,谢谢。
     }
8088 次点击
所在节点    Java
6 条回复
xiaoyukid
2015-03-12 11:10:57 +08:00
public static void main(String[] args) {
int[] a = new int[]{1, 2, 1, 1, 3};
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
if (map.get(a[i]) == null)
map.put(a[i], 1);
else
map.put(a[i], map.get(a[i]) + 1);
b[i] = map.get(a[i]);
}
for (int i = 0; i < b.length; i++)
System.out.print(b[i] + " ");
}
xiaoyukid
2015-03-12 11:12:51 +08:00
BigDecimal
2015-03-12 11:26:37 +08:00
简单写了下,不知道符不符合楼猪要求~

public static void printNum(Scanner s, int n) {
int[] inputNumArr = new int[n];
int[] outputNumArr = new int[n];
for (int i = 0; i < inputNumArr.length; i++) {
int num = s.nextInt();
inputNumArr[i] = num;

int count = 0;
for (int j : inputNumArr) {
if (j == num) {
count++;
}
}
outputNumArr[i] = count;
}

System.out.println("Input number: " +n);
System.out.print("Input number array: ");
for (int in : inputNumArr) {
System.out.print(in + " ");
}
System.out.println();
System.out.print("Output number array: ");
for (int out : outputNumArr) {
System.out.print(out + " ");
}
}
honeys
2015-03-12 13:53:59 +08:00
问题是什么意思?
原问题缩句为:用java实现个数。
个数怎么实现?
Bitex
2015-03-12 14:05:44 +08:00
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int n = scanner .nextInt();
int[] counts = new int[1001]; // 每个数字出现的个数
for (int i = 0; i < n; i ++) {
int temp = scanner.nextInt();
counts[temp]++;
System.out.print(counts[temp] + " ");
}
}
jiaqidianbo
2015-03-12 22:43:23 +08:00
@Bitex 非常感谢,答案很完美~

同时也非常感谢所有回复的朋友们,都值得参考。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/176277

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX