資料結構演算法題 刪除陣列中重複元素

2021-08-31 09:48:24 字數 811 閱讀 3321

題目

給定乙個排序的陣列,將陣列中的重複元素去掉,相同的只保留乙個,並且返回陣列新的元素個數,

不要建立乙個新的陣列來儲存結果。在常量時間內解決這個問題 

解題思路

從第二個元素開始處理,記為當前處理的元素,如果當前元素與他的前乙個元素相同就刪除這個元素,

如果不同就將它移動到正確的位置,返回最後陣列元素個數。比如輸入的陣列為,

則最後的陣列為共6個元素。

也就是index和next位置對於的元素不等的時候next往後走,相等的時候賦值並同時往後走。

public class removearrdua

int index = 0;//[0,index]記錄去重之後的陣列下標

int next = 1;

// 演算法思想:找index之後的比a[index]大的數,如是找到就移動到a[index+1]處,

// index移動到下乙個位置,next移動到下乙個位置,再找比a[index]大的數

while (next < a.length)

if (next < a.length)

}return index;

}private void swap(int a, int x, int y)

public static void main(string args) ;

int newlength = removearrdua.removeduplicates(dataarr);

for (int i = 0; i <= newlength; i++)

}}

刪除陣列重複元素

問題描述 已有一維陣列,儲存不超過100個整型資料,其中有些元素的值存在重複,從陣列中刪除所有重複的元素 每個元素只保留乙個 並輸出結果陣列。輸入說明 使用者可輸入多組資料,每組資料由兩行組成 第一行 陣列元素的個數n 第二行 n個陣列元素,由空格分隔 輸出說明 對於每組輸入,輸出最後的結果,整數之...

Perl 刪除陣列中重複元素

寫乙個小程式時候,需要去除乙個陣列中的重複元素,搜尋了一下,找到的 主要是兩種,一種是使用grep函式,一種是轉換為hash表,分別如下 使用grep函式 片段 my array a b c a d 1,2,5,1,5 my count my uniq times grep 2 array 使用轉換...

php array flip 刪除陣列重複元素

在 中,用於刪除陣列中重複元素有乙個可用的函式,那就是 array unique 但是它並不是乙個最高效的方法,使用array flip 函式將比array uniqure 在速度上高出五倍左右。方法如下 arr array 假設有一萬個元素的陣列,裡面有重複的元素。arr array flip a...