背景:
關於專案細節的提問:
**題:
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...