Day 53

第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、直接二分法从中间开始遍历,多次操作得出结果。

  

 

posted @ 2020-08-26 23:31  Liang-Yi  阅读(122)  评论(0编辑  收藏  举报