- Published on
[LeetCode 69] Sqrt
Problem
TypeScript
Newton's Method
function mySqrt(x: number): number {
let prev: number = x
let cur: number = x / 2
let precision: number = 0.1
while (prev - cur > precision) {
prev = cur
cur = (cur * cur + x) / (2 * cur)
}
return Math.floor(cur)
}
Binary Search
function mySqrt(x: number): number {
let left: number = 0
let right: number = x
while (left <= right) {
let mid: number = Math.floor((left + right) / 2)
let value: number = mid * mid
if (value === x) {
return mid
} else if (value < x) {
left = mid + 1
} else {
right = mid - 1
}
}
return right
}