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...