leetcode 374. 猜数字大小(python)

我们正在玩一个猜数字游戏。 游戏规则如下:
我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。
每次你猜错了,我会告诉你这个数字是大了还是小了。
你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):

-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜!你猜对了!
示例 :

输入: n = 10, pick = 6
输出: 6

class Solution(object):
    def guessNumber(self, n):
        """
        :type n: int
        :rtype: int
        """
        a,b=0,n
        num=(a+b)//2
        while guess(num)!=0:
            if guess(num)==1:#猜的数字偏小
                a=num+1
            if guess(num)==-1:#猜的数字偏大
                b=num-1
            num=(a+b)//2
        return num

原文地址:https://www.cnblogs.com/xiaotongtt/p/11324560.html

时间: 2024-11-05 16:10:24

leetcode 374. 猜数字大小(python)的相关文章

Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)

我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字.每次你猜错了,我会告诉你这个数字是大了还是小了.你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0): -1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了! 示例 : 输入: n = 10, pick = 6 输出: 6 相似题目:Leetcode之二分法专题-278. 第一个错误的版本(First Bad Version

猜数字大小游戏,用户输入一个数字,如果大了就显示大了,如果小了就显示小了, 如果对了就提示正确(补充难度,只有5次机会,限制数字的范围在百位以内)

产生0-100之间的随机数,包括0和100 double d = Math.random() * 100; int a = (int)Math.round(d); ------------------------------------- package 水仙花数; import java.util.Scanner;/* 猜数字大小游戏,用户输入一个数字,如果大了就显示大了,如果小了就显示小了,如果对了就提示正确(补充难度,只有5次机会,限制数字的范围在百位以内)*/public class t

猜数字游戏-python

题目: 用python写一个猜数字的游戏,游戏规则如下: 1.由一个人随机写一个整数1-99(如:21) 2.一群小伙伴轮流猜数字,如第一个人猜一个数(如:48),则缩小范围至(1-48) 3.如第二个人猜一个数(如:9),则缩小范围为(9-48) 4.以此类推,直到猜中数字(21),游戏结束 分析: 1.使用random模块随机生成随机数 2.若输入值大于num1,小于随机数,则num1=输入值 3.若输入值小于num2大于随机数,则num2=输入值 题解: #coding:utf-8impo

[Swift]LeetCode374. 猜数字大小 | Guess Number Higher or Lower

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) wh

leetcode 299. 猜数字游戏(Bulls and Cows)

目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls", 公牛),有多少位数字猜对了但是位置不对(称为"Cows", 奶牛).你的朋友将会根据提示继续猜,直到猜出秘密数字. 请写出一个根据秘密数字和朋友的猜测数返回提示的函数,用 A 表示公牛,用 B 表示奶牛. 请注意秘密数字和朋友

[LeetCode] Guess Number Higher or Lower II 猜数字大小之二

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 I picked is higher or lower. However, when you guess a particula

375 Guess Number Higher or Lower II 猜数字大小 II

我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字.每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了.然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金.直到你猜到我选的数字,你才算赢得了这个游戏.示例:n = 10, 我选择了8.第一轮: 你猜我选择的数字是5,我会告诉你,我的数字更大一些,然后你需要支付5块.第二轮: 你猜是7,我告诉你,我的数字更大一些,你支付7块.第三轮: 你猜是9,我告诉你,我的数字更小一些,你支付

LC-375 猜数字大小Ⅱ

问题: 给出数字n,在1~n中,假设设定了一个数字x让你猜,你猜一个y,如果错误,那就收取¥y的费用,并告诉你x与y的大小关系.求出在1~n中,在最佳策略下猜出一个x至少要花费多少.(考虑所有情况) 思路: 这里用到了DP问题的解决思想.通过遍历猜所有数字的情况,例如n为5,猜3,那么就将问题分成,猜1~2和4~5这两个情况的最优花费(这两个子问题)再加上3的消耗.再对比一个本次最优值,记录下这麽猜的最优值,以便复用. 代码: 1 class Solution { 2 public: 3 int

LeetCode 299. 猜数字游戏

先将两个字符串位置相同且大小相等的数字全都换成字母‘x’,(为什么要先剔除大小相等的呢,例如例子  01123,11100  )在用哈希表收集secret中每个字母的个数,遍历guess字符串,若发现guess的数字在secret中存在,那么肯定是位置不同的了(因为位置相同且大小相等的已经换成'x'了,将B自增以下,并且把哈希表中该字母的个数自减一下),如此一来,便统计除了A和B的数目. 要学会使用sprintf 等字符串与字母相互转换的函数. C代码如下: char * getHint(cha