V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiaqidianbo
V2EX  ›  Java

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

  •  
  •   jiaqidianbo · 2015-03-12 09:50:49 +08:00 · 8099 次点击
    这是一个创建于 3550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    输入格式  
    输入的第一行包含一个整数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个元素的数组,表述记录中的值

    //我的问题就是出在这里,后面不会写下去了,请高手们帮我指导一下,谢谢。
         }
    
    6 条回复    2015-03-12 22:43:23 +08:00
    xiaoyukid
        1
    xiaoyukid  
       2015-03-12 11:10:57 +08:00   ❤️ 1
    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
        2
    xiaoyukid  
       2015-03-12 11:12:51 +08:00   ❤️ 1
    BigDecimal
        3
    BigDecimal  
       2015-03-12 11:26:37 +08:00   ❤️ 1
    简单写了下,不知道符不符合楼猪要求~

    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
        4
    honeys  
       2015-03-12 13:53:59 +08:00   ❤️ 1
    问题是什么意思?
    原问题缩句为:用java实现个数。
    个数怎么实现?
    Bitex
        5
    Bitex  
       2015-03-12 14:05:44 +08:00   ❤️ 1
    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
        6
    jiaqidianbo  
    OP
       2015-03-12 22:43:23 +08:00
    @Bitex 非常感谢,答案很完美~

    同时也非常感谢所有回复的朋友们,都值得参考。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5399 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:49 · PVG 13:49 · LAX 21:49 · JFK 00:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.