leetcode千題 LCP 18 早餐組合

2021-10-24 13:11:17 字數 1862 閱讀 6983

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

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

示例 1:

輸入:staple = [10,20,5], drinks = [5,5,2], x = 15

輸出:6

解釋:小釦有 6 種購買方案,所選主食與所選飲料在陣列中對應的下標分別是:

第 1 種方案:staple[0] + drinks[0] = 10 + 5 = 15;

第 2 種方案:staple[0] + drinks[1] = 10 + 5 = 15;

第 3 種方案:staple[0] + drinks[2] = 10 + 2 = 12;

第 4 種方案:staple[2] + drinks[0] = 5 + 5 = 10;

第 5 種方案:staple[2] + drinks[1] = 5 + 5 = 10;

第 6 種方案:staple[2] + drinks[2] = 5 + 2 = 7。

示例 2:

輸入:staple = [2,1,1], drinks = [8,9,5,1], x = 9

輸出:8

解釋:小釦有 8 種購買方案,所選主食與所選飲料在陣列中對應的下標分別是:

第 1 種方案:staple[0] + drinks[2] = 2 + 5 = 7;

第 2 種方案:staple[0] + drinks[3] = 2 + 1 = 3;

第 3 種方案:staple[1] + drinks[0] = 1 + 8 = 9;

第 4 種方案:staple[1] + drinks[2] = 1 + 5 = 6;

第 5 種方案:staple[1] + drinks[3] = 1 + 1 = 2;

第 6 種方案:staple[2] + drinks[0] = 1 + 8 = 9;

第 7 種方案:staple[2] + drinks[2] = 1 + 5 = 6;

第 8 種方案:staple[2] + drinks[3] = 1 + 1 = 2;

1 <= staple.length <= 10^5

1 <= drinks.length <= 10^5

1 <= staple[i],drinks[i] <= 10^5

1 <= x <= 2*10^5

排序然後前後雙指標

class

solution

:def

breakfastnumber

(self, staple: list[

int]

, drinks: list[

int]

, x:

int)

->

int:

staple.sort(

) drinks.sort(

) l1 =

len(staple)-1

l2 =

0 ll =

len(drinks)

ans =

0for i in

range

(l1,-1

,-1)

:while l2 < ll and staple[i]

+drinks[l2]

<= x:

l2+=

1 ans += l2

return ans%

1000000007

LCP 18 早餐組合(LEETCODE)

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

LCP 18 早餐組合

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

LCP 18 早餐組合

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