LeetCode-367-有效的完全平方數(shù)

完全平方數(shù):完全平方指用一個(gè)整數(shù)乘以自己例如
1*1
,2*2
,3*3
等,依此類推。若一個(gè)數(shù)能表示成某個(gè)整數(shù)的平方的形式,則稱這個(gè)數(shù)為完全平方數(shù)。完全平方數(shù)是非負(fù)數(shù),而一個(gè)完全平方數(shù)的項(xiàng)有兩個(gè)。進(jìn)階:不要 使用任何內(nèi)置的庫函數(shù),如 ?sqrt 。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/valid-perfect-square/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:二分查找法
用二分查找的方法來尋找num的開方是否是一個(gè)整數(shù)。首先,聲明low為0,high為最大整數(shù)的平方根,二分查找的過程如下:
首先,low不大于high;
聲明一個(gè)mid,mid等于
(low + high) / 2
;如果
mid * mid == num
,則說明num是一個(gè)完全平方數(shù),直接返回true;如果
mid * mid > num
,則將high設(shè)置為mid - 1
,然后進(jìn)行下一輪處理;如果
mid * mid < num
,則將low設(shè)置為mid + 1
,然后進(jìn)行下一輪處理。最后,如果沒找到整數(shù)的平方等于num,則說明num不是一個(gè)完全平方數(shù),返回false。
【每日寄語】 愿你忠于自己,活的認(rèn)真;笑得放肆。