力扣:367. 有效的完全平方數
題目:
367. 有效的完全平方數
難度簡單476收藏分享切換為英文接收動態(tài)反饋
給你一個正整數?num
?。如果?num
?是一個完全平方數,則返回?true
?,否則返回?false
?。
完全平方數?是一個可以寫成某個整數的平方的整數。換句話說,它可以寫成某個整數和自身的乘積。
不能使用任何內置的庫函數,如??sqrt
?。
?
示例 1:
輸入:num = 16輸出:true解釋:返回 true ,因為 4 * 4 = 16 且 4 是一個整數。
示例 2:
輸入:num = 14輸出:false解釋:返回 false ,因為 3.742 * 3.742 = 14 但 3.742 不是一個整數。
?
提示:
1 <= num <= 231?- 1
這道題跟69題的思路一樣:
注意區(qū)間問題和while的判斷條件就可以
第一種對法:
class?Solution?{
public:
????bool?isPerfectSquare(int?num)?{
????????long?long?right,left,mid;
????????right?=?num,left?=?0;
????????while(right>=left){
????????????mid?=?(right+left)>>1;
????????????if(mid*mid>num){
????????????????right?=?mid-1;
????????????}else?if(mid*mid<num){
????????????????left?=?mid+1;
????????????}else?if(mid*mid==num){
????????????????return?true;
????????????}
????????}
????????return?false;
????}
};
力扣:367. 有效的完全平方數的評論 (共 條)
