From 94396654f348ed655c15b12ce34b3811a0529a78 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 4 Jun 2024 07:55:52 +0100 Subject: [PATCH 1/2] feat: add swift implementation to lcof2 problem: No.029 --- .../README.md" | 45 +++++++++++++++++++ .../Solution.swift" | 40 +++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" index dc157d9ffc2e7..6f804c575756f 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" @@ -274,6 +274,51 @@ function insert(head: Node | null, insertVal: number): Node | null { } ``` +#### Swift + +```swift +/* class Node { +* var val: Int +* var next: Node? + +* init(_ val: Int) { +* self.val = val +* self.next = nil +* } +* } +*/ + +class Solution { + func insert(_ head: Node?, _ insertVal: Int) -> Node? { + let newNode = Node(insertVal) + if head == nil { + newNode.next = newNode + return newNode + } + + var current = head + repeat { + if current!.val <= insertVal && insertVal <= current!.next!.val { + break + } + + if current!.val > current!.next!.val && (insertVal >= current!.val || insertVal <= current!.next!.val) { + break + } + + if current!.next === head { + break + } + current = current!.next + } while current !== head + + newNode.next = current!.next + current!.next = newNode + return head + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/Solution.swift" new file mode 100644 index 0000000000000..84e5742f75f00 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/Solution.swift" @@ -0,0 +1,40 @@ +/* class Node { +* var val: Int +* var next: Node? + +* init(_ val: Int) { +* self.val = val +* self.next = nil +* } +* } +*/ + +class Solution { + func insert(_ head: Node?, _ insertVal: Int) -> Node? { + let newNode = Node(insertVal) + if head == nil { + newNode.next = newNode + return newNode + } + + var current = head + repeat { + if current!.val <= insertVal && insertVal <= current!.next!.val { + break + } + + if current!.val > current!.next!.val && (insertVal >= current!.val || insertVal <= current!.next!.val) { + break + } + + if current!.next === head { + break + } + current = current!.next + } while current !== head + + newNode.next = current!.next + current!.next = newNode + return head + } +} From ae3b0416e931fa2010ca96f7238f79f2668a6311 Mon Sep 17 00:00:00 2001 From: klever34 Date: Tue, 4 Jun 2024 06:58:41 +0000 Subject: [PATCH 2/2] style: format code and docs with prettier --- .../README.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" index 6f804c575756f..78985e2e3697b 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 029. \346\216\222\345\272\217\347\232\204\345\276\252\347\216\257\351\223\276\350\241\250/README.md" @@ -295,7 +295,7 @@ class Solution { newNode.next = newNode return newNode } - + var current = head repeat { if current!.val <= insertVal && insertVal <= current!.next!.val {