Skip to content

Commit 352577a

Browse files
committed
feat: add swift implementation to lcp problem: No.18
1 parent ccc1b6a commit 352577a

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lcp/LCP 18. 早餐组合/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,37 @@ func breakfastNumber(staple []int, drinks []int, x int) int {
187187
}
188188
```
189189

190+
#### Swift
191+
192+
```swift
193+
class Solution {
194+
func breakfastNumber(_ staple: [Int], _ drinks: [Int], _ x: Int) -> Int {
195+
let mod = 1000000007
196+
var result = 0
197+
let sortedDrinks = drinks.sorted()
198+
199+
for s in staple {
200+
let remaining = x - s
201+
if remaining >= sortedDrinks.first ?? 0 {
202+
var left = 0
203+
var right = sortedDrinks.count - 1
204+
205+
while left < right {
206+
let mid = (left + right + 1) / 2
207+
if sortedDrinks[mid] <= remaining {
208+
left = mid
209+
} else {
210+
right = mid - 1
211+
}
212+
}
213+
result = (result + left + 1) % mod
214+
}
215+
}
216+
return result
217+
}
218+
}
219+
```
220+
190221
<!-- tabs:end -->
191222

192223
<!-- solution:end -->

0 commit comments

Comments
 (0)