python如何判斷連續滿足條件的區間?

時間 2021-06-11 18:43:36

1樓:

這不難啊很容易想到乙個O(n)的演算法:

#前面我就不寫了

#假設陣列存在l中(list是保留字啊怎麼用來做變數名的)l=[1,0

,1,1

,1,1

,1,0

,1,1

,1,0

,0,0

,1,1

,1,1

,1,1

,1,0

,0,0

,1,1

,0,1

,1,0

,1]dry_l=

fori

inrange(5

,len(l

)):#把l中連續的5個數加起來

dry_l.(

sum(l[

i-5:

i]))

count

,start,i

=0,0

,0while

i

dry_l

):if

dry_l[i

]==5:

#出現5 = 連續5天出現1

count+=1

start=i

#記錄起始位置

while

i

dry_l

):#找結束位置if(

dry_l[i

]==3)

and(l[

i+3]

==0):#出現3,且出現3的當天的前一天是0 = 連續兩天是0breaki+=

1print

("從第天至第天"

.format

(start

=start+1

,end=i

+3))#把i換算成l中的具體天數i+=

1print

("共計次"

.format

(count

=count

))#沒考慮尾部邊界的情況,不過那個應該不麻煩...

2樓:xuyanf66

l=[1,0,

1,1,

1,1,

1,0,

1,1,

1,0,

0,0,

1,1,

1,1,

1,0,

0,1,

1,]c_dry=0

# 已判定乾旱,乾旱事件的天數

c_one=0

# 連續1的天數

c_zero=0

# 連續0的天數

dry=

# 儲存結果

foriinl

:ifi:

# 如果1,則增加連續1的天數,清零連續0的天數c_one+=1

c_zero=0

else

:# 如果0,則反之

c_one=0

c_zero+=1

ifc_dry

:# 如果已經判定乾旱,則乾旱事件天數增加1c_dry+=1

elif

c_one==5

:# 如果未判定乾旱且連續5天出現1,則判定乾旱,且乾旱事件已持續5天

c_dry=5

ifc_dry

andc_zero==2

:# 當已經乾旱,且連續2天出現0,則結束乾旱並記錄結果(注意扣除最後連續0的那2天)

dry.

(c_dry-2

)c_dry=0

print

(dry

)# [9, 5],代表出現兩次乾旱事件,分別持續了9天和5天寫了乙個很簡單的版本,有需要的話可以參考一下思路hhh

3樓:洛克

list = [

1,0,

1,1,

1,1,

1,0,

1,1,

1,0,

0,0,

1,1,

1,1,

1,1,

1,0,

0,0,

1,1,

0,1,

1,0,

1,]out =

temp =

index = 0

list_length = len(list)# 本質上是對資料分組,

# 建立乙個名為temp的空list, 然後遍歷資料list, 當前資料和前乙個資料有乙個不是0的時候向 temp 中新增當前資料,

# 當前資料和下乙個資料都是 0 的時候, temp作為乙個資料分組, 新增到最後的輸出list中. 然後temp重新設定為空list

# 主要是注意資料list的第乙個資料和最後乙個資料while True:

# 資料list的第乙個資料

# 資料list 的最後乙個資料

# 其他資料

print34;當前temp_list: {}, 索引: {}, 資料list長度:

{}, 當前資料: {}".formattemp, index, list_length, list[indexindex += 1

print("最後輸出分組:")

print(out)

python 如何判斷某一列的數值是否連續

In 27 import functools In 28 check add one lambda arr functools.reduce lambda x,y x 1 y if isinstance x,int else x 0 and x 1 1 y,y arr 0 In 29 check a...

給定不連續函式f x ,如何判斷能否構造連續函式列f n x ,使其逐點收斂到f x 上?

dhchen 不可以,因為乙個函式如果它恰好是一列連續函式的極限,你們這個函式的不連續點必須是第一綱的,也就是說你只要構造乙個函式,它的不連續點構成的集合不是第一綱的就好。比如,狄利克雷函式,但是狄利克雷函式可以表示成連續函式列的二重序列極限,也就是 所以,第二個問題就是不是所有的函式都是連續函式的...

Python如何判斷列表元素嚴格遞增?

Beviniy 提供一種效率更高的方案 all a i a i 1 for i in range len a 1 原答案sorted a a and len set a len a defjudge alist if any alist i 1 alist i foriin range 0 len ...