diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/README.md" index e690c64d1aabe..1dc1296f71cdc 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/README.md" @@ -182,6 +182,34 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func minEatingSpeed(_ piles: [Int], _ h: Int) -> Int { + var left = 1 + var right = piles.max() ?? 0 + + while left < right { + let mid = (left + right) / 2 + var hours = 0 + + for pile in piles { + hours += (pile + mid - 1) / mid + } + + if hours <= h { + right = mid + } else { + left = mid + 1 + } + } + + return left + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/Solution.swift" new file mode 100644 index 0000000000000..63a63918a8372 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 073. \347\213\222\347\213\222\345\220\203\351\246\231\350\225\211/Solution.swift" @@ -0,0 +1,23 @@ +class Solution { + func minEatingSpeed(_ piles: [Int], _ h: Int) -> Int { + var left = 1 + var right = piles.max() ?? 0 + + while left < right { + let mid = (left + right) / 2 + var hours = 0 + + for pile in piles { + hours += (pile + mid - 1) / mid + } + + if hours <= h { + right = mid + } else { + left = mid + 1 + } + } + + return left + } +} \ No newline at end of file