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