python實現不使用額外空間去除重複元素

2021-08-05 18:45:38 字數 721 閱讀 3143

題目之前做過,但是使用就是python自帶的方法,借助了額外的空間,這裡給出來幾種方法,下面是具體的實現:

#!usr/bin/env python

#encoding:utf-8

'''__author__:沂水寒城

功能:不使用額外空間去除重複元素

'''def remove_repeat_******1(num_list):

'''python內建方法,使用額外空間

'''return list(set(num_list))

def remove_repeat_******2(num_list):

'''列表解析式方法,使用額外空間

'''tmp_list=

tmp_list=[one for one in num_list if one not in tmp_list]

return list(set(num_list))

def remove_repeat(num_list):

'''不使用額外空間

'''i=0

while i

結果如下:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

[finished in 0.3s]

演算法 不使用額外變數交換資料

問題 如果x 10,y 23變為x 23,y 10不允許通過第三方變數 方法一 異或法 x x y y x y y x y 證明 易知不論異運算 或運算都不涉及進製 退位。故可以考慮x,y一位時候的情況,他對任何位都是一樣的。1 x 1,y 1 x x y 0 y x y 1 x x y 1 2 x...

不使用額外的js檔案建立 web workers

web workers 需要將要執行的 定義為單獨的js,然後通過以下方式來引用 new worker some path process.js 但是,當工程本身需要將所有的 進行編譯並合併成乙個檔案時,這種單獨的js的方式,就還需要一些特殊處理。或者,當頁面就是乙個單獨的html,不希望引用額外的...

不使用額外空間,將 A,B兩鍊錶的元素交叉歸併

includeusing namespace std typedef struct node list void print list list cout endl void merge list list1,list list2 int main for int i 99 i 0 i 2 prin...