LeetCode-- Implement int sqrt(int x)

题目描述:

Implement int sqrt(int x).

Compute and return the square root of x.

求一个整数的完全平方数,但返回的是Int。

从n/2开始递减,找到 i*i == n,注意int溢出的处理(从Sqrt(int.MaxValue)开始递减)

实现代码:

public class Solution {
    public int MySqrt(int x) {
    if(x < 2){
	    return x;
	}
	if(x > int.MaxValue){
		x = int.MaxValue;
	}

	var half = 46340; // Sqrt(int.MaxValue)

	for(var i = half; i >= 1; i--){
		if(i * i == x){
			return i;
		}
		if(i * i < x){
			return i;
		}
	}

	return -1;
    }
}
时间: 2024-12-24 02:38:55

LeetCode-- Implement int sqrt(int x)的相关文章

Sqrt(int x) leetcode java

Reference: http://blog.csdn.net/lbyxiafei/article/details/9375735  题目: Implement int sqrt(int x). Compute and return the square root of x. 题解: 这道题很巧妙的运用了二分查找法的特性,有序,查找pos(在这道题中pos=value),找到返回pos,找不到返回邻近值. 因为是求数x(x>=0) 的平方根, 因此,结果一定是小于等于x且大于等于0,所以用二分查

【一天一道LeetCode】#69. Sqrt(x)

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Implement int sqrt(int x). Compute and return the square root of x. (二)解题 实现sqrt(x),找到一个数,它的平方等于小于x的最接近x的数. class Solution { public: int mySqrt(int x) { int

LeetCode OJ:Sqrt(x)(平方根)

Implement int sqrt(int x). Compute and return the square root of x. 简单的二分法,注意mid应该选为long,否则容易溢出: 1 class Solution { 2 public: 3 int mySqrt(int x) { 4 if(x == 0 || x == 1) return x; 5 int beg = 1; 6 int end = x; 7 long mid = 0; //这里用long,否则会溢出 8 while

Leetcode 题目整理 Sqrt &amp;&amp; Search Insert Position

Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 注:这里的输入输出都是整数说明不会出现 sqrt(7)这种情况,思路一就是应用二分法进行查找.每次给出中间值,然后比对cur的平方与目标值的大小.需要先设定两个变量用来存放左右游标. 这里要考虑一下整型溢出的问题,另外,即使不能开出整数的也要近似给出整数部分,不能忽略. 代码如下: int Solution::mySqrt(int x) { //

leetcode 二分查找 Sqrt(x)

Sqrt(x) Total Accepted: 26074 Total Submissions: 116517My Submissions Implement int sqrt(int x). Compute and return the square root of x. 题意:实现求方根 sqrt(x) 思路:二分法 对于一个数,它的方根不可能大于 x/2 + 1 问题转变为在[0,x/2 + 1]中找到一个数 v 使得 v * v == x 既然是在有序区间里找数,那么就可以用二分查找 注

leetcode || 69、Sqrt(x)

problem: Implement int sqrt(int x). Compute and return the square root of x. Hide Tags Math Binary Search 题意:计算平方根,没有指定精度,默认精度为0.00001 thinking: (1)由于题中没有设置精度,提示使用二分法 (2)除了二分法,还可以使用牛顿迭代 code: 二分法: class Solution{ public: int sqrt(int x) { unsigned lo

【LeetCode 69】Sqrt(x)

Implement int sqrt(int x). Compute and return the square root of x. 思路: 突然发现,二分真TM的是万能的.还有牛顿迭代法,数学的东西,头疼不想看了.还有传说中的“魔数”法,比math库效率都高,试了下RE - -. C++: 1 class Solution { 2 public: 3 int mySqrt(int x) { 4 5 if(x < 0) 6 return 0; 7 if(x == 0 || x == 1) 8

LeetCode 69 _ Sqrt(x) 求平方根 (Easy)

Description: 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 retu

LeetCode: Implement strStr() [027]

[题目] Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack. [题意] 实现库函数strStr(), 功能是在字符串haystack中找出目标串needle第一次出现的索引位 [思路]字符串的匹配,能够用暴力解法,但不推荐.一般使用KMP算法求解. 简要介绍一下KMP的思想: haystack是