題目之前做過,但是使用就是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...