作業(2018 05 02,第九周週三)

2021-08-19 18:00:22 字數 1012 閱讀 1994

leetcode    46

. permutations

given a collection of distinct integers, return all possible permutations.

example:

input: [1,2,3]

output:

[ [1,2,3],

[1,3,2],

[2,1,3],

[2,3,1],

[3,1,2],

[3,2,1]

]

解題思路:

這道題比較關鍵的乙個點就是「互不相同的整數集合」,這樣就大大降低了題目的難度。我採用了遞迴的做法,逐步地縮小問題的規模,先對列表進行乙個迴圈,剔除相應的整數得到比原來列表小1的新列表,對這個新列表求全排列之後,再在每個排列前面加上這個被剔除的整數。對新列表同樣採取這個做法,如此遞迴下去,直至列表大小只有1為止。

**:

class solution:

def permute(self, nums):

""":type nums: list[int]

:rtype: list[list[int]]

"""result =

if len(nums)==0:

elif len(nums)==1:

else:

for i in nums:

temp_nums = nums[:]

temp_nums.remove(i)

x = temp_nums

temp = self.permute(x)

for j in range(len(temp)):

temp[j] = [i]+temp[j]

return result

反思:

應當指出,這個演算法的時間複雜度是非常高的,不過還是能通過測試,似乎需要得到這個全排列,演算法複雜度應該為o(n!),至於有沒有時間複雜度更小的演算法,我還不得而知。

第九周周二總結 第九周週三計畫

周二的主題提取使用lda模型進行了簡單的測試,效果還可以。主要是提取的分詞的結果,lda 隨機生成文章各個主題比例,再根據各個主題隨機生成詞,詞與詞之間的順序關係被徹底忽略了,這就是lda眼中世間所有文章的生成過程!這篇部落格介紹的很詳細了。對於一篇新聞先進行標準一點的分詞,然後進行訓練,這裡我生成...

第九周作業

1 編寫指令碼,接受二個位置引數,magedu和 www,判斷系統是否有magedu,如果沒有則自動建立magedu使用者,並自動設定家目錄為 www vim create user.sh bin bash if ne 2 then echo 0 username directory exit 1 ...

第九周作業

cat data canshu.sh bin bash user 1 dir 2if 2 then echo 請輸入兩個引數 exit else id dev null if 0 then mkdir dev null useradd d dev null echo 使用者 建立成功 else ec...