}**解釋:思想:使用二分查詢法
方法: 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...