[LeetCode]69. Sqrt(x)

xiaoxiao2021-02-28  96

[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; }
转载请注明原文地址: https://www.6miu.com/read-58319.html

最新回复(0)