今天晚上要去面試蘑菇智行還挺開心的炫隶,感覺是家A輪公司统屈,應(yīng)該要求會低一些的吧躏仇,然后還針對性地看了些CNN和目標跟蹤的問題,結(jié)果人家上來就問nccl庫有什么特點恋腕,這一看要求我就達不到抹锄,果然聊了沒幾句我們就散了。有點受打擊了,明天還有兩家伙单,好好加油吧获高。
今天只有上午復(fù)習了PRML和LeetCode,下午在看之前面試的面經(jīng)了吻育。
一念秧、PRML
今天復(fù)習了PRML的兩節(jié),第三節(jié)其實沒看懂啥布疼,講的是順序軌跡摊趾,其中有一個重要的結(jié)論是順序序列收斂于根。第四節(jié)的話講的是指數(shù)族分布游两,其中講到了從伯努利分布推導出sigmoid函數(shù)的過程砾层,還有從多項式分布推導出softmax的過程,還是很有用的器罐,感覺有些東西一下子就通透多了梢为。后面講了充分統(tǒng)計量和無信息先驗等等就不細說了。
二轰坊、LeetCode
(以后再抄別人代碼感覺要放上鏈接了铸董,老是這樣好像不太好,罪過罪過????)
46# 全排列
看了一個比較容易寫出來的寫法肴沫,但是理解起來不那么容易粟害,就是說我用列表里的所有字符去判斷,我加上第一個字符颤芬,然后遞歸地深搜悲幅,深搜的參數(shù)是初始的nums和加完一個字符的這個列表,最后再把這個字符刪掉站蝠,繼續(xù)循環(huán)汰具。這樣其實就是我弄完1開頭的,再排2開頭的菱魔。
class Solution(object):
def permute(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
self.res = []
self.dfs(nums, [])
return self.res
def dfs(self, nums, subList):
"""
回溯的思路留荔,就是加上一個然后遞歸求加完的這個列表
然后再刪掉它
"""
if len(nums) == len(subList):
self.res.append(subList[:])
for num in nums:
if num in subList:
continue
subList.append(num)
self.dfs(nums, subList)
subList.remove(num)
48# 旋轉(zhuǎn)圖像
這個題目比較有意思的點是你得能看出來要換位置的元素是哪個。我抄的思路呢澜倦,是先把數(shù)組逆序聚蝶,就是只逆序最外層,比如[[1,2,3],[4,5,6]]逆序成[[4,5,6],[1,2,3]]藻治,然后要逆序的地方其實除了i和j相等的位置碘勉,其他都要換,換的方式是i換成j桩卵,所以代碼就是
class Solution(object):
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: None Do not return anything, modify matrix in-place instead.
"""
# 先把矩陣整體翻轉(zhuǎn)验靡,也就是把各個類別的順序倒過來
matrix[:] = matrix[::-1]
n = len(matrix)
for i in range(0, n):
for j in range(i+1, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
49# 字母異位詞分組
這個題目我一開始想到要統(tǒng)計每個詞出現(xiàn)的字母的次數(shù)倍宾,次數(shù)一致的就應(yīng)該分到一起,但是其實很多個字典晴叨,不太好比較凿宾。我沒想到的是矾屯,其實可以用一個數(shù)組來表示所有的字符串兼蕊,只要用26個位就好了,這樣表示出來的向量如果相等的就應(yīng)該分到一組件蚕。而且作者還很機智的用了一個特殊的數(shù)據(jù)結(jié)構(gòu)孙技,是python里的defaultdict,它的作用是可以一個key對應(yīng)多個value排作,所以就能存儲最終的結(jié)果了牵啦。只要在一開始創(chuàng)建一個空的defaultdict,通過一個循環(huán)統(tǒng)計出每個字符串的向量妄痪,然后tuple函數(shù)把list轉(zhuǎn)成tuple哈雏,最后把這個字符串加到defaultdict里面就好了,最終返回defaultdict的values衫生。代碼:
class Solution(object):
import collections
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
res = collections.defaultdict(list)
for s in strs:
count = [0] * 26
for c in s:
count[ord(c) - ord('a')] += 1
res[tuple(count)].append(s)
return res.values()
(代碼來自https://zhuanlan.zhihu.com/p/45596463
)
明天還不知道要經(jīng)歷怎樣的風雨裳瘪,今晚還是好好休息吧,年輕人罪针。