-6

a[] と b[] の 2 つの配列があります。

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[] に同じ値のシーケンスがある場合、その値の 1 番目のみを 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) 処理された値を格納するためのハッシュマップを作成する

2) 最初の配列を反復処理します。現在の値がマップに格納されている場合は 0 を埋め、それ以外の場合はこの値を HashMap に格納し、値を新しい配列にコピーします。

于 2013-08-21T20:13:02.300 に答える