😄😊😆😃😄😊😆😃
开始cpp刷题之旅。
依旧是追求耗时0s的一天。
69. x 的平方根
示例 1:
输入:x = 4
输出:2
示例 2:
输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。
思路:这种题目一看就是二分法,很简单的题目,耗时0s,看代码。
class Solution {
public:int mySqrt(int x) {if (x == 1 || x == 0) {return x;}int left = 0;long right = x / 2 + 1; while (right - left > 1) {long middle = (left + right) / 2;if (middle* middle == x) {return middle;}else if (middle * middle < x) {left = middle;}else {right = middle;}}return left;}
};
调试的时候发现0和1最好还是单独拉出来判断一下,这两个值返回的是自身,其它的数代码都可以满足。
看一下提交记录:
OK,perfect。