leetcode V LCP18 早餐組合

2021-10-25 06:18:02 字數 1484 閱讀 4800

題目:

小釦在秋日市集選擇了一家早餐攤位,一維整型陣列 staple 中記錄了每種主食的**,一維整型陣列 drinks 中記錄了每種飲料的**。小釦的計畫選擇乙份主食和一款飲料,且花費不超過 x 元。請返回小釦共有多少種購買方案。

注意:答案需要以 1e9 + 7 (1000000007) 為底取模,如:計算初始結果為:1000000008,請返回 1

思路:剛開始採用了暴力解法,然後顯示超時了

class

solution

:def

breakfastnumber

(self, staple: list[

int]

, drinks: list[

int]

, x:

int)

->

int:

m=len(staple)

n=len(drinks)

res=

0for i in

range

(m):

for j in

range

(n):

if staple[i]

+drinks[j]

<=x:

res+=

1 a=

int(

1e9)

return res%a

轉而改進,先對陣列排序,對drinks逆序判斷:若drinks中最小的元素與當前staple元素相加都大於x,那staple之後的元素則不用再判斷了。

解答:

class

solution

:def

breakfastnumber

(self, staple: list[

int]

, drinks: list[

int]

, x:

int)

->

int:

staple.sort(

) drinks.sort(

) m=

len(staple)

j=len(drinks)-1

res=

0 a=

1000000007

for i in

range

(m):

while j>=

0and staple[i]

+drinks[j]

>x:

j-=1if j==-1

:break

res=

(res+j+1)

%a

return res

LCP 18 早餐組合

小釦在秋日市集選擇了一家早餐攤位,一維整型陣列 staple 中記錄了每種主食的 一維整型陣列 drinks 中記錄了每種飲料的 小釦的計畫選擇乙份主食和一款飲料,且花費不超過 x 元。請返回小釦共有多少種購買方案。注意 答案需要以 1e9 7 1000000007 為底取模,如 計算初始結果為 1...

LCP 18 早餐組合

小釦在秋日市集選擇了一家早餐攤位,一維整型陣列 staple 中記錄了每種主食的 一維整型陣列 drinks 中記錄了每種飲料的 小釦的計畫選擇乙份主食和一款飲料,且花費不超過 x 元。請返回小釦共有多少種購買方案。注意 答案需要以 1e9 7 1000000007 為底取模,如 計算初始結果為 1...

LCP 18 早餐組合(LEETCODE)

lcp 18.早餐組合 小釦在秋日市集選擇了一家早餐攤位,一維整型陣列 staple 中記錄了每種主食的 一維整型陣列 drinks 中記錄了每種飲料的 小釦的計畫選擇乙份主食和一款飲料,且花費不超過 x 元。請返回小釦共有多少種購買方案。注意 答案需要以 1e9 7 1000000007 為底取模...