微軟研究院 Big Data Mining 面試

2021-10-10 03:26:43 字數 4326 閱讀 2348

背景:

關於專案細節的提問:

**題:

a=[-

1,3,

2,-5

,5]is_find_posi=

false

flag=

0for i in

range

(len

(a))

:if a[i]

>

0and

not is_find_posi:

flag=i

is_find_posi=

true

if a[i]

<

0and is_find_posi:

tmp=a[i]

for j in

range

(i,flag,-1

):a[j]

=a[j-1]

a[flag]

=tmp

flag+=

1print

(a)#out:[-1, -5, 3, 2, 5]

a=[1

,0,4

,0,8

,0,0

,5,0

]is_first_zero=

false

zero_sit=

0for i in

range

(len

(a))

:if a[i]==0

andnot is_first_zero:

zero_sit=i

is_first_zero=

true

if a[i]

>

0and is_first_zero:

tmp=a[i]

a[zero_sit]

=tmp

a[i]=0

zero_sit+=

1print

(a)#out:[1, 4, 8, 5, 0, 0, 0, 0, 0]

#測試樣例

#a=[1]

#a=[0]

#a=#a=[0,0,0,0,0]

#a=none

#動態規劃a=[

-1,3

,2,-

2,5]

dp=[0]

*5#dp[i]表示以i位置為結尾的子串的最大的和

dp[0

]=a[0]

for i in

range(1

,len

(a))

:if dp[i-1]

<0:

dp[i]

=a[i]

else

: dp[i]

=dp[i-1]

+a[i]

print

(max

(dp)

)#out:8

a=[-

1,3,

2,-2

,5]b=

0])for i in

range(1

,len

(a)):1

]+a[i]

)print

(b)#求字首和陣列中最小的差值

b.sort(

)#快排

print

(b)minclose=b[1]

-b[0

]for i in

range(2

,len

(b)):if

(b[i]

-b[i-1]

)minclose=b[i]

-b[i-1]

print

(minclose)

#out:

#[-1, 2, 4, 2, 7]

#[-1, 2, 2, 4, 7]

#0

a=[-

1,3,

2,-2

,5]b=

0])for i in

range(1

,len

(a)):1

]+a[i]

)#求字首和陣列中最小的差值

print

(max

(b)-

min(b)

)#複雜度o(n)

#out:8

# 二分法查詢小於等於x的最大數

defhalfsearch

(a,x)

: left=

0 right=

len(a)-1

mid=

(left+right)//2

while

(left<=right)

:if a[mid]

>x:

right=mid-

1else

:#a[mid]<=x

left=mid+

1 mid=

(left+right)//2

return righta=[

1,2,

2,3,

4,6,

7,8]

x=2print

(halfsearch(a,x)

)#out:2

二分法擴充套件:

# 給定乙個有序(公升序)的列表與待查詢的關鍵字,成功則返回其索引,失敗則返回-1。

defhalfsearch

(a,x)

: left=

0 right=

len(a)-1

mid=

(left+right)//2

while

(left<=right)

:if a[mid]

==x:

return mid

if a[mid]

>x:

right=mid-

1else

:#a[mid]left=mid+

1 mid=

(left+right)//2

return-1

a=[1,

2,2,

3,4,

6,7,

8]x=2

print

(halfsearch(a,x)

)

# 二分法查詢大於等於x的最小數

defhalfsearch

(a,x)

: left=

0 right=

len(a)-1

mid=

(left+right)//2

while

(left<=right)

:if a[mid]

>=x:

right=mid-

1else

:#a[mid]left=mid+

1 mid=

(left+right)//2

if left==

len(a)

:return-1

return lefta=[

1,1,

1,3,

4,6,

7,8]

x=9print

(halfsearch(a,x)

)

#沒法列印出來看,所以不知道對不對昂

class

node()

:def

__init__

(self,present)

: self.present=present

self.

next

=none

self.pre=

none

defreverse

(a,b)

: b.pre=a.pre

a.next

=b.next

a.pre.

next

=b a.pre=b

b.next

=a

#1->2->5->null

n= node(1)

n1=node(2)

n2=node(5)

n.next

=n1n1.

next

=n2n1.pre=n

n2.next

=none

n2.pre=n1

print

(n)reverse(n1,n2)

微軟亞洲研究院之行

摘自 今天終於參觀了期待已久的微軟亞洲研究院。一開始見到的是馬歆老師,覺得很親切,全過程都保持微笑。而且後來進行現場演示的時候,我站在後面看不見,她還把位子讓給了我。首先是三場學術報告。第一場講的是語音和表情的合成。看上去覺得蠻逼真的,乙個人並沒有說過那段話,卻可以模擬出來,而且用肉眼很難分辨。微軟...

微軟研究院鄒欣 筆試閱卷有感

微軟研究院鄒欣 筆試閱卷有感 每年的秋季學期,正是校園招聘的高峰期。作為招聘流程的第乙個重要環節,在今年的九月至十一月裡,微軟公司將統一安排三場全國性的筆試進行初選。對微軟筆試感興趣的考生,或許都想知道自己的答卷是怎麼被 評判 的?本文是去年筆試出題和閱卷小組對當年部分考生提問的一些解答,僅與今年參...

微軟亞洲研究院實習生面試

上週說到微軟亞洲研究院 msra,一下就簡稱msra吧 網路面試我這邊因為連不上而要重新安排面試,周五hr就給我 約好今天中午1 00 3 00重新面試。於是提前做好各種準備,找了個拉adsl的宿舍來上網,然後用了人家帶攝像頭的筆記本。還好,今天一切都比較順利。msra的面試是網路面試,使用offi...