From d1f5215b5e8e687c6058d2c1bc6f4b07afe3a672 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 22 Jul 2024 07:11:07 +0100 Subject: [PATCH 1/2] feat: add swift implementation to lcof2 problem: No.074 --- .../README.md" | 26 +++++++++++++++++++ .../Solution.swift" | 21 +++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" index 85910bed4d7ee..85ca3fcd16c29 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" @@ -188,6 +188,32 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func merge(_ intervals: [[Int]]) -> [[Int]] { + guard !intervals.isEmpty else { return [] } + + let intervals = intervals.sorted { $0[0] < $1[0] } + var result: [[Int]] = [] + + var currentInterval = intervals[0] + for interval in intervals.dropFirst() { + if currentInterval[1] < interval[0] { + result.append(currentInterval) + currentInterval = interval + } else { + currentInterval[1] = max(currentInterval[1], interval[1]) + } + } + result.append(currentInterval) + + return result + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/Solution.swift" new file mode 100644 index 0000000000000..3962b75d1c535 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/Solution.swift" @@ -0,0 +1,21 @@ +class Solution { + func merge(_ intervals: [[Int]]) -> [[Int]] { + guard !intervals.isEmpty else { return [] } + + let intervals = intervals.sorted { $0[0] < $1[0] } + var result: [[Int]] = [] + + var currentInterval = intervals[0] + for interval in intervals.dropFirst() { + if currentInterval[1] < interval[0] { + result.append(currentInterval) + currentInterval = interval + } else { + currentInterval[1] = max(currentInterval[1], interval[1]) + } + } + result.append(currentInterval) + + return result + } +} From 59a776e5aa92eebc17f7c31f11aaee39d012f5d2 Mon Sep 17 00:00:00 2001 From: klever34 Date: Mon, 22 Jul 2024 06:15:53 +0000 Subject: [PATCH 2/2] style: format code and docs with prettier --- .../README.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" index 85ca3fcd16c29..411c4a9817d23 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 074. \345\220\210\345\271\266\345\214\272\351\227\264/README.md" @@ -194,10 +194,10 @@ public class Solution { class Solution { func merge(_ intervals: [[Int]]) -> [[Int]] { guard !intervals.isEmpty else { return [] } - + let intervals = intervals.sorted { $0[0] < $1[0] } var result: [[Int]] = [] - + var currentInterval = intervals[0] for interval in intervals.dropFirst() { if currentInterval[1] < interval[0] { @@ -208,7 +208,7 @@ class Solution { } } result.append(currentInterval) - + return result } }