第367题:
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
来源:力扣(LeetCode)说明:不要使用任何内置的库函数,如 sqrt。
1、可知当num大于4的时候,num/2的平方是肯定大于num的,由因为1是完全平方数,2、3不是完全平方数;
那么我们判断num的平方根是否存在时,只需要在(1,num/2)内判断即可;
利用二分法在(1,num/2)内判断,当mid*mid>num时,说明这个值大了,那么就将right=mid-1,如果mid*mid<num,就将left=mid+1;
这样进行判断,最终可得出num是否为完全平方数。
第374题:
猜数字游戏的规则如下:
每轮游戏,系统都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。
如果你猜错了,系统会告诉你,你猜测的数字比系统选出的数字是大了还是小了。来源:力扣(LeetCode)
你可以通过调用一个预先定义好的接口 guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):
-1 : 你猜测的数字比系统选出的数字大
1 : 你猜测的数字比系统选出的数字小
0 : 恭喜!你猜对了!
1、直接二分法从中间开始遍历,多次操作得出结果。