1

余分な配列を使用せずに int 配列から重複値を削除する必要があり、配列から重複値を削除した後、配列の長さを変更するにはどうすればよいですか?

例えば:-

int []arr = new int [] {1,2,1,3,3,5,6,1,3,2,8} //配列の長さは 11

重複する値を削除した後、出力は {1,2,3,5,6,8} のようになります // 配列の長さは 6 です

それはどのように可能ですか??

**定義済みのメソッドを使用することは許可されていません。適切なロジックのみで実行する必要があります。

4

2 に答える 2

3

基本的にできません: 配列は .NET 内の固定サイズです。サイズを変更することはできません。

配列の「使用済み」部分を示す別の変数を保持する可能性があり、最終的には (たとえば) { 1, 2, 3, 5, 6, 8, 0, 0, 0, 0, 0 } の配列になります。余分な配列の使用を避ける以外に、パフォーマンスに関してどの側面に関心があるかは明確ではありません。たとえば、配列を並べ替えてから、同じ要素が連続して出現するたびに、残りの値を 1 つ上にシャッフルすることができます。

于 2012-04-11T13:02:10.510 に答える
0

Jonが述べたように、配列のサイズを変更することはできません。最善のアプローチは、ハッシュセットを使用することです。

ハッシュセットの使用が許可されていない場合は、並べ替えます。ただし、ここでは、結果を保持する新しい配列を作成する必要があります。

于 2012-04-11T13:16:52.223 に答える