给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16 输出:true
2 解析(1)方法一 利用 ( n + 1 ) 2 − n 2 = 2 n + 1 (n+1)^2 - n^2 = 2n+1 (n+1)2−n2=2n+1,距离4 = 1+3,9 = 1+3+5,16 = 1+3+5+7,反过来,判断是一个数是不是平方数,逐个减去奇数,如果最后等于0,就是平方数 (2)方法二 利用暴力求解,二分的思想去减少暴力求解的次数。
3 Python实现(1)方法一
class Solution:
def isPerfectSquare(self, num: int) -> bool:
i = 1
while num>0:
num -=i
i +=2
if num==0:
return True
else:
return False
(2)方法二
left ,right = 0,num
index = 0
while left
关注
打赏
- 【文献汇总】2019-2021最新应用深度学习到OFDM通信系统中的论文汇总(实时更新)
- 【金融量化】电话口试-智力题
- 【数据挖掘】2022年2023届秋招爱玩特智能量化研究员岗 笔试题
- 【Leetcode刷题Python】1467. 两个盒子中球的颜色数相同的概率
- 【Leetcode刷题Python】50. Pow(x, n)
- 【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
- 【Leetcode刷题Python】73. 矩阵置零
- 【Leetcode刷题Python】LeetCode 478. 在圆内随机生成点
- 【Leetcode刷题Python】 LeetCode 2038. 如果相邻两个颜色均相同则删除当前颜色
- 【数据挖掘】2022年2023届秋招Kanaries雾角科技算法岗 笔试题