陣列「去重」與「排序」

2021-10-08 10:06:47 字數 1369 閱讀 9262

樣例輸入

10

20 40 32 67 40 20 89 300 400 15

樣例輸出

8

15 20 32 40 67 89 400

用到了三種解決方法:

1.桶排序:先去重後排序

2.快速排序:先排序後去重

3.c++ stl庫中的sort和unique函式:直接排序和去重。

#include

#include

using

namespace std;

int a[

1001];

void

bucket_sort

(int n)

//桶排序:去重+排序

for(i=

1;i<=n;i++

)for

(i=1

;i<=

1000

;i++

) cout << j << endl;

for(i=

1;i<=

1000

;i++)}

void

quick_sort

(int l,

int r)

//快速排序

a[i]

=x;quick_sort

(l,i-1)

;quick_sort

(i+1

,r);}}

void

quick_sort1

(int n)

//快速排序:排序+去重

quick_sort(1

,n);

for(i=

2; i<=n; i++

) cout << j << endl;

cout << a[1]

<<

' ';

for(i=

2; i<=n; i++)}

void

sort_unique

(int n)

//直接排序+去重

sort

(a+1

,a+n+1)

; p=

unique

(a+1

,a+n+1)

-a-1

; cout

1;i<=p;i++)}

intmain()

陣列去重與排序

陣列去重 方法一 es6 set方法去重 function unique arr 方法二 indexof function unique arr return result 方法三 使用filter function unique arr 方法四 同樣是set方法但是簡化 new set arr 陣...

排序陣列去重

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1,2。你不...

陣列去重並排序

巢狀陣列 const foo 10,30,34,11,23,5,20,4,77 2,25,13,5,10 77 深度遞迴遍歷陣列,將所有元素和遍歷到的子陣列中的元素合併為乙個新陣列返回,使用infinity,表示可展開任意深度的巢狀陣列 const a foo.flat infinity set所有...