LintCode刷題 x的平方根

2022-08-19 13:39:07 字數 994 閱讀 7693

}**解釋:思想:使用二分查詢法

方法: n == x / n    這比② n*n == x 好一點,因為②中n*n可能造成資料超出 int 範圍

詳細解釋:

int mid = start + (end - start)/2; 使得每次mid都是中間數或者是比中間數大一的數

mid > x/mid 說明查詢的區間在start到mid之間

最後乙個if十分重要

因為當mid十分接近,甚至是等於需要的數時;執行x/mid得到的數卻是比mid大一點的數時,此時應該結束迴圈,但是程式會判斷執行else;

然後因為start+1>end不成立而結束迴圈,但是沒有返回值,此時如果沒有if語句,程式結束返回end,卻不是正確答案,正確答案應該是start;

所以用if語句判斷得到正確返回值start;

不理解的看x = 4187案例:

正確結果是 64

Leetcode刷題篇 (八)X的平方根

實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。這個題有好多種解...

Leetcode刷題指南 x 的平方根69

2 思路 3 要求 實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。樣例 示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部...

x的平方根

題目三十九 實現int sqrt int x 函式,計算並返回 x 的平方根。您在真實的面試中是否遇到過這個題?yes 樣例sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x class solution if i ix return i if i i x...