LeetCode之Sqrt(x)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode之Sqrt(x)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、題目
Implement?int sqrt(int x).
Compute and return the square root of?x.
Subscribe?to see which companies asked this question.
2、代碼實現
public class Solution {public int mySqrt(int x) {if (x < 0)return -1;if (x == 0)return 0; if (x == 1) return 1;int max = x / 2 + 1;int min = 1;while (min <= max) {int mid = (min + max) / 2;if (mid <= x / mid && x / (mid + 1) < mid + 1)return mid;if (mid > x / mid) max = mid - 1;elsemin = mid + 1;}return 0;}
}
3、注意的地方
1)、第一要記得判斷條件是?
mid * mid <= x && (mid + 1) * (mid + 1) >x
2)、第二要防止數據超過整形數據范圍,所以需要把條件轉化為?
mid <= x / mid && x / (mid + 1) < mid + 1
3)、邏輯要清晰,先求max,min, next we will get mid, and condition is mid * mid <= x && (mid + 1) * (mid + 1) > x, and by condition ,do not remember max = mid -1, min = mid +1 or max = mid, min = mid;
總結
以上是生活随笔為你收集整理的LeetCode之Sqrt(x)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之机端安装apk出现INS
- 下一篇: java之简单的Callback使用总结