Files
2020-08-07 17:06:53 +08:00

38 lines
1.3 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [69. Sqrt(x)](https://leetcode.com/problems/sqrtx/)
## 题目
Implement `int sqrt(int x)`.
Compute and return the square root of *x*, where *x* is guaranteed to be a non-negative integer.
Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.
**Example 1:**
Input: 4
Output: 2
**Example 2:**
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since
the decimal part is truncated, 2 is returned.
## 题目大意
实现 int sqrt(int x) 函数。计算并返回 x 的平方根其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
## 解题思路
- 题目要求求出根号 x
- 根据题意,根号 x 的取值范围一定在 `[0,x]` 之间,这个区间内的值是递增有序的,有边界的,可以用下标访问的,满足这三点正好也就满足了二分搜索的 3 大条件。所以解题思路一,二分搜索。
- 解题思路二,牛顿迭代法。求根号 x即求满足 `x^2 - n = 0` 方程的所有解。
![](https://img-blog.csdn.net/20171019164040871?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbnJlbnhpYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)