卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Java使用二分查找法獲取非負(fù)整數(shù)的平方根

題目要求計(jì)算并返回非負(fù)整數(shù)num的平方根,結(jié)果只保留整數(shù)部分,小數(shù)部分將被舍去。為了提高算法效率并避免整數(shù)越界溢出問題,我們可以使用二分查找法。 使用二分查找法獲取非負(fù)整數(shù)的平方根 我們將起點(diǎn)lo

題目要求計(jì)算并返回非負(fù)整數(shù)num的平方根,結(jié)果只保留整數(shù)部分,小數(shù)部分將被舍去。為了提高算法效率并避免整數(shù)越界溢出問題,我們可以使用二分查找法。

使用二分查找法獲取非負(fù)整數(shù)的平方根

我們將起點(diǎn)low定為0,終點(diǎn)high定為參數(shù)值的一半,通過二分查找的方式來獲取結(jié)果值。為了防止平方運(yùn)算中出現(xiàn)溢出越界的情況,我們需要將low、high以及中值mid全部聲明為long類型。

```java public int mySqrt(int num) { if (num 0 || num 1) { return num; } long low 0; long high num / 2; while (low < high) { long mid (low high) / 2; long square mid * mid; if (square num) { return (int)mid; } else if (square < num) { low mid 1; } else { high mid - 1; } } return (int)high; } ```

測試代碼示例

在主方法中,我們調(diào)用上述方法獲取指定值的平方根,并將結(jié)果打印到控制臺。

```java public static void main(String[] args) { Solution solution new Solution(); int num 16; int result (num); ("The square root of " num " is: " result); } ```

運(yùn)行測試代碼

運(yùn)行主方法,觀察控制臺的輸出結(jié)果,如果符合預(yù)期,則說明算法沒有問題。

``` The square root of 16 is: 4 ```

算法考點(diǎn)分析

這個算法題目主要考察利用二分查找法來提升效率,并且在計(jì)算過程中需要注意應(yīng)對越界溢出的問題。為了避免越界問題,我們將變量聲明為long類型,這樣可以處理較大的整數(shù)范圍。通過合理地選擇起點(diǎn)和終點(diǎn),每次迭代都可以減少問題規(guī)模,從而快速找到平方根的整數(shù)部分。

標(biāo)簽: