無序鍊錶去除重複項

2021-09-01 23:49:54 字數 2083 閱讀 8750

# def listflushbyset(inputlist):#集合去重

# newlist = list(set(inputlist))

# print(newlist)

#空間換時間

def flushlist(inputlist):

objlist =

for i in range(0, len(inputlist)):

length = 0

for j in range(i + 1, len(inputlist)):

if inputlist[i] == inputlist[j]:

length += 1

if length > 1:

pass

else:

print(objlist)

for i in range(len(objlist)):

del inputlist[objlist[i]]

for j in range(i + 1, len(objlist)):

if objlist[j] > objlist[i]:

objlist[j] -= 1

print(inputlist)

testlist = [1,3,6,9,8,42,3,6,4,2,3,4,6,2,89,7]

flushlist(testlist)

第三種根據快排排序然後進行去重時間複雜度為o(nlogn)

第四種空間換時間,從第乙個元素插入新列表,之後的每個元素通過判斷if x not in newlist來插入

第五種呼叫numpy的unique:

#fromiter是將迭代物件輸入成為陣列

import numpy as np

testlist = [5,2,6,2,7,5,6,8,2,9]

a = np.fromiter(testlist, dtype=int)

print ('第乙個陣列:')

print (a)

print ('\n')

print ('第乙個陣列的去重值:')

u = np.unique(a)

print (u)

print ('\n')

print ('去重陣列的索引陣列:')

u,indices = np.unique(a, return_index = true)

print (indices)

print ('\n')

print ('返回去重元素的重複數量:')

u,indices = np.unique(a,return_counts = true)

print (u)

print (indices)

#frombuffer是將buffer輸入的流轉換成陣列

import numpy as np

import re

testlist = [5,2,6,2,7,5,6,8,2,9]

teststring = b'5262756829'

a = np.frombuffer(teststring, dtype='s1')

print ('第乙個陣列:')

print (a)

print ('\n')

print ('第乙個陣列的去重值:')

u = np.unique(a)

print (u)

print ('\n')

tmplist =

for x in u.flat: #迭代獲取數值

print(str(x)[2])

print(tmplist)

print ('去重陣列的索引陣列:')

u,indices = np.unique(a, return_index = true)

print (indices)

print ('\n')

print ('返回去重元素的重複數量:')

u,indices = np.unique(a,return_counts = true)

print (u)

print (indices)

從無序鍊錶中移除重複項

題目描述 實現從無序鍊錶中移除重複項,並保持原有順序 head 0 5 3 2 4 3 1 0 head 0 5 3 2 4 1 解題思路 1.從第乙個元素開始,遍歷鍊錶比較重複元素並刪除重複元素 雙重迴圈 2.空間換時間 hashset判斷是否有該節點 hash方法和equals方法的作用 pub...

去除重複項

假定乙個txt檔案,內容是 45.44,66.78 47.67,69.12 內容有重複的,資料項是座標項。處理方法 對於資料內容,定義如下實體類 public class point public void setx double x public double gety public void s...

如何從無序鍊錶中移除重複項 Java版

題目描述 給定乙個沒有排序的鍊錶,去掉其重複項,並保留原順序,如鍊表1 3 1 5 5 7,去掉重複項變為1 3 5 7。方法一 順序刪除 思路 通過雙重迴圈直接在鍊錶上執行刪除操作。外層迴圈用乙個指標從第乙個節點開始遍歷整個鍊錶,然後內層迴圈用另乙個指標遍歷其餘節點,將與外層迴圈遍歷到的指標所指節...