LeetCode 69 — Sqrt(x)(C++ Java Python)
2014-02-26 21:39
567 查看
题目:http://oj.leetcode.com/problems/sqrtx/
Implement
Compute and return the square root of x.
题目翻译:
实现int sqrt(int x)。
计算并返回x的平方根。
分析:
二分查找。注意结果不是整数时应返回整数部分。
C++实现:
Java实现:
Python实现:
感谢阅读,欢迎评论!
Implement
int sqrt(int x).
Compute and return the square root of x.
题目翻译:
实现int sqrt(int x)。
计算并返回x的平方根。
分析:
二分查找。注意结果不是整数时应返回整数部分。
C++实现:
class Solution { public: int sqrt(int x) { // Note: The Solution object is instantiated only once and is reused by each test case. if(x < 2) { return x; } int left = 1; int right = x / 2; int mid = 0; int lastMid = 0; while(left <= right) { mid = (left + right) / 2; if(x / mid > mid) { left = mid + 1; lastMid = mid; } else if(x / mid < mid) { right = mid - 1; } else { return mid; } } return lastMid; } };
Java实现:
public class Solution { public int sqrt(int x) { // Note: The Solution object is instantiated only once and is reused by each test case. if (x < 2) { return x; } int low = 1; int high = x / 2; int mid = 0; int lastMid = 0; while (low <= high) { mid = (low + high) / 2; if (x / mid > mid) { low = mid + 1; lastMid = mid; } else if (x / mid < mid) { high = mid - 1; } else { return mid; } } return lastMid; } }
Python实现:
class Solution: # @param x, an integer # @return an integer def sqrt(self, x): if x < 2: return x left = 1 right = x / 2 while left <= right: mid = (left + right) / 2 if(x > mid * mid): left = mid + 1 lastMid = mid elif(x < mid * mid): right = mid - 1 else: return mid return lastMid
感谢阅读,欢迎评论!
相关文章推荐
- [Java]Leetcode69 Sqrt(x)
- LeetCode 12 — Integer to Roman(C++ Java Python)
- LeetCode 63 — Unique Paths II(C++ Java Python)
- [Leetcode]69. Sqrt(x)解析@Python
- [LeetCode] 008. String to Integer (Easy) (C++/Java/Python)
- 【LeetCode 69】Sqrt(x) (Python)
- LeetCode 19 — Remove Nth Node From End of List(C++ Java Python)
- LeetCode 34 — Search for a Range(C++ Java Python)
- [Leetcode]@python 69. Sqrt(x)
- LeetCode 141 — Linked List Cycle(C++ Java Python)
- [LeetCode] 001. Two Sum (Medium) (C++/Java/Python)
- LeetCode 144 — Binary Tree Preorder Traversal(C++ Java Python)
- LeetCode 96 — Unique Binary Search Trees(C++ Java Python)
- LeetCode 27 — Remove Element(C++ Java Python)
- LeetCode 61 — Rotate List(C++ Java Python)
- 【leetcode】69. Sqrt(x)【java】
- LeetCode 28 — Implement strStr()(C++ Java Python)
- [LeetCode] 009. Palindrome Number (Easy) (C++/Java/Python)
- [LeetCode] 010. Regular Expression Matching (Hard) (C++/Java/Python)
- LeetCode 7 — Reverse Integer(C++ Java Python)