[LeetCode]69. Sqrt(x)

来源:互联网 发布:怎样成为淘宝客挣钱 编辑:程序博客网 时间:2024/06/14 09:04

[LeetCode]69. Sqrt(x)

题目描述

这里写图片描述

思路

由于题目要求返回的是整数,简单实现的话可以使用二分
注意实现过程中的一些越界问题

代码

#include <iostream>using namespace std;class Solution {public:    int mySqrt(int x) {        if (x == 1)            return 1;        int start = 0, end = x;        while (start < end) {            //越界点1 end + start 会越界            int mid = ((end - start) >> 1) + start;            //越界点2 mid * mid 会越界            if (mid == x / mid) return mid;            else if (start == mid || end == mid) return start;            else if (mid < x / mid) start = mid;            else end = mid;        }        return end;    }};int main() {    Solution s;    cout << s.mySqrt(2147395599) << endl;    system("pause");    return 0;}
原创粉丝点击