{ "question_id": 69, "question_title": "x 的平方根", "difficulty": "简单", "question_content": "

实现 int sqrt(int x) 函数。

\n

计算并返回 x 的平方根,其中 x 是非负整数。

\n

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

\n

示例 1:

\n
输入: 4
输出:
2
\n

示例 2:

\n
输入: 8
输出:
2
说明:
8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
", "topic_link": "https://bbs.csdn.net/topics/600470124", "cpp": "#include \nusing namespace std;\nclass Solution\n{\npublic:\n\tint mySqrt(int x)\n\t{\n\t\tif (x == 0)\n\t\t{\n\t\t\treturn 0;\n\t\t}\n\t\tunsigned int lo = 1, hi = x;\n\t\tunsigned int mid = (lo + hi) / 2;\n\t\tfor (;;)\n\t\t{\n\t\t\tif (mid > x / mid)\n\t\t\t{\n\t\t\t\thi = mid;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (mid + 1 > x / (mid + 1))\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlo = mid;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmid = (lo + hi) / 2;\n\t\t}\n\t\treturn mid;\n\t}\n};", "java": "class Solution {\n\tpublic int mySqrt(int x) {\n\t\tint left = 0, right = 46340;\n\t\twhile (left < right) {\n\t\t\tint mid = (left + right) / 2;\n\t\t\tif (mid * mid < x)\n\t\t\t\tleft = mid + 1;\n\t\t\telse if (mid * mid > x)\n\t\t\t\tif ((mid - 1) * (mid - 1) <= x)\n\t\t\t\t\treturn mid - 1;\n\t\t\t\telse\n\t\t\t\t\tright = mid - 1;\n\t\t\telse\n\t\t\t\treturn mid;\n\t\t}\n\t\tif (left * left > x)\n\t\t\treturn left - 1;\n\t\treturn left;\n\t}\n}\n", "js": "", "python": "class Solution:\n\tdef mySqrt(self, x):\n\t\tif x == 0:\n\t\t\treturn 0\n\t\tif x < 4:\n\t\t\treturn 1\n\t\tres = 2 * self.mySqrt(x / 4)\n\t\tif (res + 1) * (res + 1) <= x and (res + 1) * (res + 1) >= 0:\n\t\t\treturn res + 1\n\t\treturn res\n# %%\ns = Solution()\nprint(s.mySqrt(4))", "status": 1, "keywords": "数学,二分查找", "license": { "cpp": "https://github.com/begeekmyfriend/leetcode", "python": "https://github.com/qiyuangong/leetcode", "java": "https://github.com/zhangyu345293721/leetcode" }, "notebook": { "cpp": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/leetcode/ipynb/68/68_cpp.ipynb?type=file", "python": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/leetcode/ipynb/68/68_python.ipynb?type=file", "java": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/leetcode/ipynb/68/68_java.ipynb?type=file" }, "notebook_enable": 1 }