From a9aff18eb2bb3cdb9c4e00b3da92a744adfb94ce Mon Sep 17 00:00:00 2001 From: Alex Xie Date: Mon, 4 Nov 2019 07:51:15 -0800 Subject: [PATCH] [Search] Improved solution for 'search insert position' --- Search/SearchInsertPosition.swift | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Search/SearchInsertPosition.swift b/Search/SearchInsertPosition.swift index fa454352..6d0f4f81 100644 --- a/Search/SearchInsertPosition.swift +++ b/Search/SearchInsertPosition.swift @@ -35,4 +35,32 @@ class SearchInsertPosition { return right } -} \ No newline at end of file + + func searchInsertI(nums: [Int], _ target: Int) -> Int { + guard nums.count > 0 else { + return 0 + } + + var left = 0 + var right = nums.count - 1 + + var res = 0 + while left <= right { + let mid = left + (right - left) / 2 + if nums[mid] == target { + + return mid + } else if nums[mid] < target { + + res = mid + 1 + left = mid + 1 + } else { + + res = mid + right = mid - 1 + } + } + + return res + } +}