题目描述:
给你一个正整数 num
。如果 num
是一个完全平方数,则返回 true
,否则返回 false
。完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。不能使用任何内置的库函数,如 sqrt
。
解题思路:
1.二分法:这个题要说二分查找的思路还是很容易理解,因为题目中说给定的是一个整数,整数开方必然还是正数,而且这个正整数还必然存在于1~num之间,很容易就想到切两段,在哪个范围内就换端点继续切两端的这么找,因为要循环下去的直到找到目标值,所以想到while,因为while只需要一个必须满足的条件就会一直执行下去,for的话更侧重于有序的推进某个过程,用我的理解的话一个是围起来个圈,一个是给一条线拉着走这样。但是二分查找有些问题会出现时间超出限制,建议可以再看一看牛顿迭代法(看完再来做笔记)。