小釦在秋日市集選擇了一家早餐攤位,一維整型陣列 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...