leetcode 高薪_LeetCode刷题实战69:x 的平方根
算法的重要性,我就不多說了吧,想去大廠,就必須要經過基礎知識和業務邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續每天帶大家做一道算法題,題目就從LeetCode上面選 !
今天和大家聊的問題叫做?x 的平方根,我們先來看題面:
https://leetcode-cn.com/problems/sqrtx/
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 returned.
題意
實現 int sqrt(int x) 函數。計算并返回 x 的平方根,其中 x 是非負整數。由于返回類型是整數,結果只保留整數的部分,小數部分將被舍去。樣例示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8?的平方根是 2.82842..., 由于返回類型是整數,小數部分將被舍去。
解題
https://blog.csdn.net/qq_41231926/article/details/82861877解法一:從1開始逐個查找思路一是最先能想到的簡單粗暴的解法。從數字1開始找,一旦找到平方值等于x的數字i,直接返回i。如果找到平方值大于x的數字i,需要返回i - 1。需要注意的是,為了防止做乘法運算時越界,需要強轉為long類型。時間復雜度是O(sqrt(x))。空間復雜度是O(1)。public?class?Solution?{public?int?mySqrt(int?x)?{for?(long?i = 1; i <= x; i++) {if(i * i > x) {return?(int)(i - 1);
??????}else?if(i * i == x) {return?(int)i;
??????}
????}return?0;
????}
}
public?class?Solution?{public?int?mySqrt(int?x)?{int?left = 0, right = x / 2?+ 1;while?(left <= right) {long?mid = left + (right - left) / 2;if?(mid * mid == x) {return?(int) mid;
??????} else?if?(mid * mid < x) {
????????left = (int) (mid + 1);
??????} else?{
????????right = (int) (mid - 1);
??????}
????}return?right;
??}
}
上期推文:
LeetCode40-60題匯總,速度收藏!LeetCode刷題實戰61:旋轉鏈表LeetCode刷題實戰62:不同路徑LeetCode刷題實戰63:不同路徑 IILeetCode刷題實戰64:最小路徑和LeetCode刷題實戰66:加一LeetCode刷題實戰67:二進制求和LeetCode刷題實戰68:文本左右對齊總結
以上是生活随笔為你收集整理的leetcode 高薪_LeetCode刷题实战69:x 的平方根的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq空间网页版电脑_常用QQ软件,电脑C
- 下一篇: flink source 同步_如何生成