int[] table = {1,1,1,3,3,5};
要求输出 3,6,5;也就是相同的数字相加,除了用map 我想不出比较简单的办法来了,请大家帮忙了啊

解决方案 »

  1.   

    int[] a = {1,1,1,3,3,5,6};
    int total = 0;
    int i = 0;
    for (i = 0; i < a.length-1; i++)
    {
    if (a[i] == a[i+1])
    {
    total += a[i];
    }
    else
    {
    total += a[i];
    System.out.print(total + " ");
    total = 0;
    }
    }
    System.out.print(total + a[i]);
      

  2.   

    哪个简单用哪个
    要不你学java干什么
      

  3.   


    int[] t = {1,1,1,1,1,2,2,2,2,2,2,3,3,5,5,5,5,6,6,6,6,6,9,9,9,9,10};
    int sum = 0;
    for(int i=0; i<t.length; i++) {
    sum += t[i];
    if(i+1 == t.length || t[i] != t[i+1]) {
    System.out.print(sum + "\t");
    sum=0;
    }
    }
    /*
    5 12 6 20 30 36 10
    */
      

  4.   

    int t = new int[10]; //
    Arrays.fill(t, 0);
    for (int a : table) {
        t[a] += a;
    }
    for (int aa : t) {
        System.out.printf("%d,", aa);
    }
      

  5.   

    5L的改下,利用数组
    public static void main(String[] args) {
    int[] table = { 1, 3, 2, 4, 2, 1, 1, 3, 3, 5 };
    int[] t = new int[10]; //
    for (int a : table) {
    t[a] += a;
    }
    for (int aa : t) {
    if (aa != 0)
    System.out.printf("%d ", aa);
    }
    }
      

  6.   

    如果都是>0的话 就可以用 1当数组下标  数组里面存放出现次数就行了 比如 3出现2次  array[3]=2