From c55ffb4365d0a1606e11e0c9a5c955ca0e930138 Mon Sep 17 00:00:00 2001 From: Yaseen Khan <78000116+Ykhan799@users.noreply.github.com> Date: Sun, 29 Jan 2023 20:42:55 -0800 Subject: [PATCH] Create: 0374-guess-number-higher-or-lower.swift --- swift/0374-guess-number-higher-or-lower.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 swift/0374-guess-number-higher-or-lower.swift diff --git a/swift/0374-guess-number-higher-or-lower.swift b/swift/0374-guess-number-higher-or-lower.swift new file mode 100644 index 000000000..d461f6ce1 --- /dev/null +++ b/swift/0374-guess-number-higher-or-lower.swift @@ -0,0 +1,23 @@ +// Time: O(log n) +// Space: O(1) +class Solution : GuessGame { + func guessNumber(_ n: Int) -> Int { + // return a num btw 1,..,n + var low = 1 + var high = n + + while true { + let mid = low + (high - low) / 2 + let myGuess = guess(mid) + if myGuess == 1 { + low = mid + 1 + } + else if myGuess == -1 { + high = mid - 1 + } + else { + return mid + } + } + } +} \ No newline at end of file