diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/README.md" index ed8879be28bf6..fc9c626d119c5 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/README.md" @@ -151,6 +151,28 @@ function singleNonDuplicate(nums: number[]): number { } ``` +#### Swift + +```swift +class Solution { + func singleNonDuplicate(_ nums: [Int]) -> Int { + var left = 0 + var right = nums.count - 1 + + while left < right { + let mid = (left + right) / 2 + if nums[mid] != nums[mid ^ 1] { + right = mid + } else { + left = mid + 1 + } + } + + return nums[left] + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/Solution.swift" new file mode 100644 index 0000000000000..1e050f3fedf9a --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 070. \346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227/Solution.swift" @@ -0,0 +1,17 @@ +class Solution { + func singleNonDuplicate(_ nums: [Int]) -> Int { + var left = 0 + var right = nums.count - 1 + + while left < right { + let mid = (left + right) / 2 + if nums[mid] != nums[mid ^ 1] { + right = mid + } else { + left = mid + 1 + } + } + + return nums[left] + } +} \ No newline at end of file