簡單而言判別式模型是求分類面。
生成式模型是求分布。
def
findk
(a,b)
: gap=
max(a,b)
-min
(a,b)
if a&
1== b&1:
x=(gap-4)
//4+2
else
: x=
(gap-1)
//2+1
print
(x)for i in
range
(x,-1,
-1):
if0<=i*i-
max(a,b)
<=
500:
for j in
range
(i-1,-
1,-1
):print
(i,j)
if i*i-
max(a,b)
==j*j-
min(a,b)
:return i*i-
max(a,b)
print
(findk(1,
-11))
完全平方數越靠後,它的間距越大。
這個題其實是樓梯問題的變種,現在樓梯變成了數字:
遞迴版本:
def
translatenum
( num ):if
not num:
return
0if num<10:
return
1 s=
str(num)
deff
(s):
ifnot s:
return0if
len(s)==1
:return1if
int(s[:2
])<26:
return f(s[2:
])+f(s[1:
])else
:return f(s[1:
])return f(s)
print
(translatenum(
12158
))
迭代版本:
def translatenum
( num ):if
not num:
return
0if num<10:
return
1 s=
str(num)
i=1if
int(s[:2
])<26:
j=2else
: j=
1for k in range(2
,len
(s)):if
int(s[k-
1:k+1]
)<26:
i,j=j,i+j
else
: i,j=j,j
return j
print
(translatenum
(12158
))
甚至可以認為是一種遍歷:
bfs:
def translatenum
( num ):if
not num:
return
0if num<10:
return
1 s=
str(num)
q=q.(0
) c=
0while q:
d=q.
pop(0)
if d==
len(s)-1
: c+=1
if d+
1<=
len(s)-1
: q.
(d+1
)if d+
2<=
len(s)-1
andint
(s[d:d+2]
)<26:
q.(d+2
)print
(q)return c
dfs:
def translatenum
( num ):if
not num:
return
0if num<10:
return
1 s=
str(num)
c=[0
] def dfs
(s):
print
(s)if
not s:
c[0]
+=1return
iflen
(s)>=
2and
int(s[:2
])<26:
dfs(s[2:
])dfs(s[1:
])else
:dfs
(s[1:]
)dfs
(s)return c[0]
print
(translatenum
(12158
))
還可以回溯:
def translatenum
( num ):if
not num:
return
0if num<10:
return
1 s=
str(num)
track=[0
] c=[0
] ch=[1
,2] def trackback
(ch,track)
:if track[-1
]>=
len(s)-1
: c[0]
+=1return
for i in ch:
if track[-1
]+i in track:
continue
if track[-1
]+i<
len(s)
andint
(s[track[-1
]:track[-1
]+i]
)<26:
track.
(track[-1
]+i)
trackback
(ch,track)
track.
pop(
)trackback
(ch,track)
return c[0]
print
(translatenum
(12158
))
58同城演算法
58同城題目 58同城出了三道演算法題,第一道題題目過長。好像是和推薦系統掛鉤的題目 給cv一條活路吧!t t 第二道題還有第三道題都是leetcode上很簡單的題目 第一次2ac!主要還是題目簡單 主要想說一下第二道題目,給定乙個非負整數num,求在0 x num區間中的所有整數的二進位制數中1的...
演算法工程師
演算法工程師方向也各有不同吧,說下訊號處理主要是調研也就是看 演算法 和驗證,也就是寫 最後還有除錯了。發布於 2016 06 20 所謂演算法工程師,大致的工作範圍是演算法研究 工程實現兩部分,不同的人在不同的環境下各有側重。第一部分,在目前國內網際網路公司的環境裡,說演算法研究,其實更多的工作是...
阿里演算法工程師招聘
崗位要求 qualifications 1 本科以上學歷 碩士博士優先。具有很強的邏輯分析能力,對資料敏感。2 具有一定的資料建模實踐經驗,紮實的程式設計基礎,精通至少一門程式語言。熟悉r語言優先。3 熟悉常用機器學習演算法,對資訊檢索 自然語言處理 影象處理 語音處理等相關領域的應用問題有大量實踐...