From 1f396281837e1587e1629e563d9e1cfb23d4f506 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Mon, 4 Nov 2024 08:32:45 +0100 Subject: [PATCH] feat: add swift solution 2 implementation to lcof2 problem: No.119 --- .../README.md" | 27 +++++++++++++++++++ .../Solution2.swift" | 22 +++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/Solution2.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/README.md" index c38278c1a11ec..a7fc7b66ce480 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/README.md" @@ -360,6 +360,33 @@ var longestConsecutive = function (nums) { }; ``` +#### Swift + +```swift +class Solution { + func longestConsecutive(_ nums: [Int]) -> Int { + let numSet: Set = Set(nums) + var longestStreak = 0 + + for num in nums { + if !numSet.contains(num - 1) { + var currentNum = num + var currentStreak = 1 + + while numSet.contains(currentNum + 1) { + currentNum += 1 + currentStreak += 1 + } + + longestStreak = max(longestStreak, currentStreak) + } + } + + return longestStreak + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/Solution2.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/Solution2.swift" new file mode 100644 index 0000000000000..948b3c0030aa9 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 119. \346\234\200\351\225\277\350\277\236\347\273\255\345\272\217\345\210\227/Solution2.swift" @@ -0,0 +1,22 @@ +class Solution { + func longestConsecutive(_ nums: [Int]) -> Int { + let numSet: Set = Set(nums) + var longestStreak = 0 + + for num in nums { + if !numSet.contains(num - 1) { + var currentNum = num + var currentStreak = 1 + + while numSet.contains(currentNum + 1) { + currentNum += 1 + currentStreak += 1 + } + + longestStreak = max(longestStreak, currentStreak) + } + } + + return longestStreak + } +} \ No newline at end of file