博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode374. Guess Number Higher or Lower
阅读量:2241 次
发布时间:2019-05-09

本文共 1190 字,大约阅读时间需要 3 分钟。

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I'll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-11, or 0):

-1 : My number is lower 1 : My number is higher 0 : Congrats! You got it!

Example :

Input: n = 10, pick = 6Output: 6

思路:依旧是一道二分查找的题.设好left,right.因为一定存在这个pick的数,所以while条件不设置为left<right,直接设为True就可以.

# The guess API is already defined for you.# @param num, your guess# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0# def guess(num):class Solution(object):    def guessNumber(self, n):        """        :type n: int        :rtype: int        """        left,right=1,n                while 1:            mid = (left + right)//2                        if guess(mid) == 0:                return mid            elif guess(mid) == -1:                right = mid - 1            elif guess(mid) == 1:                left = mid + 1

也有大神的做法,现在还看不懂,学习学习

def guessNumber(self, n):        class C: __getitem__ = lambda _, i: -guess(i)        return bisect.bisect(C(), -1, 1, n)

 

转载地址:http://nprbb.baihongyu.com/

你可能感兴趣的文章
Java实现简单的RPC框架
查看>>
一个用消息队列 的人,不知道为啥用 MQ,这就有点尴尬
查看>>
从零手写RPC
查看>>
高并发和多线程的关系
查看>>
Java并发与多线程
查看>>
对于多线程程序,单核cpu与多核cpu是怎么工作的
查看>>
多线程和CPU的关系
查看>>
认识cpu、核与线程
查看>>
关于Java健壮性的一些思考与实践!
查看>>
如何避免自己写的代码成为别人眼中的一坨屎!
查看>>
Postman 安装及使用入门教程
查看>>
获取指定包下所有自定义注解并提取注解信息
查看>>
Windows 环境下 Git clone pull fetch 慢 解决之道
查看>>
Redis (error) NOAUTH Authentication required.解决方法
查看>>
plsql窗口中文显示的是横版的 问题解决办法
查看>>
使用notePad修改将文件格式保存后不起作用
查看>>
如何查询oracle会话及锁 如何查锁了哪张表?如何杀掉会话
查看>>
Git常用命令速查手册
查看>>
Redis运维利器 -- RedisManager
查看>>
分布式之REDIS复习精讲
查看>>