将重复的整数序列存储在另一个数组中

时间:2013-08-21 20:06:46

标签: java arrays search integer sequence

我有两个数组a []和b []。

int a[]={3,1,1,1,7,4,6,6,3,1};
int b[]=new int[a.length];

实际问题中的数组长度可能会发生变化。 数组中的值必须小于数组长度的值。


输出必须是:

b = 3 1 0 0 7 4 6 0 3 1

所以基本上如果[]中有一个相同值的序列,那么只有它的第一个值必须放在b []中的相同索引处。其余应该为零,直到序列存在。


java语法中的答案会有所帮助。 提前谢谢

2 个答案:

答案 0 :(得分:2)

    int a[]={3,1,1,1,7,4,6,6,3,1};
    int b[]=new int[a.length];

    int temp = a[0];
    b[0] = temp;

    for(int i = 1; i < a.length; i++) { 
        if(a[i] == temp)
            b[i] = 0;
        else
            b[i] = a[i];

        temp = a[i];    
    }

答案 1 :(得分:0)

提示:

1)创建hashmap来存储已处理的值

2)迭代第一个数组:如果当前值存储在map中,则填0,否则将该值存储在HashMap中并将值复制到新数组