-6

我有两个数组 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

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


用 java 语法回答会很有帮助。先感谢您

4

2 回答 2

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];    
    }
于 2013-08-21T20:14:12.450 回答
0

暗示:

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

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

于 2013-08-21T20:13:02.300 回答