面經整理 LeetCode篇

2021-09-25 07:27:04 字數 2860 閱讀 1583

題解

class

solution

(object):

defmindistance

(self, word1, word2)

:"""

:type word1: str

:type word2: str

:rtype: int

"""len1 =

len(word1)

len2 =

len(word2)

if len1 ==

0and len2 ==0:

return

0#dp表示以i與j分別結尾的兩個單詞,最小操作步數

#注意下下面len1與len2的位置

dp =[[

0]*(len2+1)

for i in

range

(len1+1)

] i =

1while i <= len1:

dp[i][0

]= i

i +=

1 j =

1while j <= len2:

dp[0]

[j]= j

j +=

1for i in

range(1

,len1+1)

:for j in

range(1

,len2+1)

:if word1[i-1]

== word2[j-1]

: dp[i]

[j]= dp[i-1]

[j-1

]else

: dp[i]

[j]=

min(dp[i-1]

[j-1

],dp[i-1]

[j],dp[i]

[j-1])

+1return dp[len1]

[len2]

def

countdifferentabsolute

(arr)

: n =

len(arr)

count =

0 left =

0 right = n -

1while left < right:

while left < right and

abs(arr[right]

)>=

abs(arr[left]):

ifabs

(arr[right])==

abs(arr[left]):

left +=

1 right -=

1 count +=

1while left < right and

abs(arr[left]

)>=

abs(arr[right]):

ifabs

(arr[right])==

abs(arr[left]):

right -=

1 left +=

1 count +=

1return count

if __name__ ==

'__main__'

: array =[-

3,-2

,-1,

1,2]

print

(countdifferentabsolute(array)

)

在這裡插入**片
def

findmiddle

(arr)

: n =

len(arr)

low =

0 high = n -

1 mid =

(low+high)

>>

1while

true

: pos = partition(arr,low,high)

if pos == mid:

break

if pos < mid:

low = pos +

1if pos > mid:

high = pos -

1if mid%2:

return arr[mid]

else

: partition(arr,mid+

1,n-1)

#注意這一句,等於是在mid後面再排一次序,然後中間兩個求均值

return

(arr[mid]

+ arr[mid+1]

)/2def

partition

(arr,low,high)

: key = arr[low]

while low < high:

while low < high and arr[high]

>= key:

high -=

1 arr[low]

= arr[high]

while low < high and arr[low]

<= key:

low +=

1 arr[high]

= arr[low]

arr[low]

= key

return low

if __name__ ==

'__main__'

: arr =[1

,4,2

,7,6

,5]print

(findmiddle(arr)

)

在這裡插入**片

面經整理01

在真正面試的時候,不要和面試官一問一答模式,總體感覺把自己知道的擴充套件著回答效果會好很多,比如 問乙個演算法的時間複雜度,直接回答結果,還是把最好時間複雜度和最壞時間複雜度分析後得出時間複雜度告訴面試官的效果好?程序同步 程序的狀態 作業系統換頁演算法 執行緒之間的資料通訊 資料庫優化 innod...

OCI面經 流程篇

hr call 電面 final interview 三輪vo lc49,bq,design hashmap hr call就是 如果簡歷符合jb上minimum requirement的話,好好準備一下簡歷就可以了吧,當時hr問了我很多實習的details 店面 店面沒有問lc,問了一些基礎,比如...

面經 葫蘆面經

1 給定乙個n位數,例如12345,從裡面去掉k個數字,得到乙個n k位的數,例如去掉2,4,得到135,去掉1,5,得到234。設計演算法,求出所有得到的 n k位數裡面最小的那乙個 2 找明星 n個人中,只有乙個明星 明星不認識其他所有的人,而其他人 都認識明星,這些人中也可能相互認識。你每次只...