首页 > 其他分享 >#每日一练

#每日一练

时间:2024-08-20 12:25:21浏览次数:8  
标签:10 return 硬币 每日 Alice 75 Bob

题目:

给你两个  整数 x 和 y ,分别表示价值为 75 和 10 的硬币的数目。

Alice 和 Bob 正在玩一个游戏。每一轮中,Alice 先进行操作,Bob 后操作。每次操作中,玩家需要拿出价值 总和 为 115 的硬币。如果一名玩家无法执行此操作,那么这名玩家 输掉 游戏。

两名玩家都采取 最优 策略,请你返回游戏的赢家。

思路:

由题意可知在价值总和为115的硬币中价值为75的硬币只能有一个(2 * 75 = 150 > 115),在此基础上价值为10的硬币数目为4(75 + 4 * 10 = 115)。

如下表所示,当价值为75的硬币数目为1,价值为10 的硬币数目为4时,分出胜负的回合数为1,Alice获胜,当价值为75的硬币数目为2,价值为10 的硬币数目为8时,分出胜负的回合数为2,Bob获胜,当价值为75的硬币数目为3,价值为10 的硬币数目为12时,分出胜负的回合数为3,Alice获胜。由此可见,当回合数为奇数时,Alice获胜,当回合数为偶数时,Bob获胜。

价值为75的硬币数目价值为10的硬币数目赢家名字分出胜负的回合数
14Alice1
28Bob2
312Alice3
416Bob4

此外,还需要考虑x 与 y/4(计算需要价值为10的硬币数目的最大值)值的大小问题。取值永远取最小的那一个,该值为 75 + 4 * 10  = 115 出现的次数(回合数)

最后判断该值的奇偶性,得出答案。

代码:

class Solution:
    def losingPlayer(self, x: int, y: int) -> str:
        n = y // 4
        if n < x:
            if n % 2 == 0:
                return 'Bob'
            else:
                return 'Alice'
        elif n > x:
            if x % 2 == 0:
                return 'Bob'
            else:
                return 'Alice'
        else:
            if x % 2 == 0:
                return 'Bob'
            else:
                return 'Alice'

心得:一行代码解决

return 'Alice'if min(x,y/4)%2 else 'Bob'

原题链接:https://leetcode.cn/problems/find-the-winning-player-in-coin-game/

标签:10,return,硬币,每日,Alice,75,Bob
From: https://blog.csdn.net/m0_47135524/article/details/141203646

相关文章

  • Leetcode每日刷题之18.四数之和
    1.题目解析这里的18.四数之和与之前的三数之和有着异曲同工之妙,所以建议看完三数之和再来看本题,详细题目见Leetcode每日刷题之15.三数之和 ,只不过这里需要寻找的是四元组,也是不能寻找重复的四元组并且四元组内的数字可以按照任意顺序返回2.算法原理关于四数之和的思路......
  • Leetcode每日一题 20240817 3137.K周期字符串需要的最少操作次数
    题目描述给你一个长度为n的字符串word和一个整数k,其中k是n的因数。在一次操作中,你可以选择任意两个下标i和j,其中0<=i,j<n,且这两个下标都可以被k整除,然后用从j开始的长度为k的子串替换从i开始的长度为k的子串。也就是说,将子串word[i…i+k......
  • Leetcode每日一题 20240818 551.学生出勤记录Ⅰ
    题目描述给你一个字符串s表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:‘A’:Absent,缺勤‘L’:Late,迟到‘P’:Present,到场如果学生能够同时满足下面两个条件,则可以获得出勤奖励:按总出勤计,学生缺勤(‘A’)严......
  • 每日掌握一个论文插图·小提琴图|24-08-18
    一、小提琴图的定义小提琴图是一种数据可视化工具,它结合了箱型图和核密度估计图的特点,使得我们能够更全面地了解数据的分布特征。小提琴图是一种统计图表,它通过图形化的方式展示了数据的分布密度。与传统的箱型图相比,小提琴图提供了更多的信息,因为它不仅显示了数据的中......
  • 高级java每日一道面试题-2024年8月16日-设计模式篇-解释装饰者模式和代理模式的区别?
    如果有遗漏,评论区告诉我进行补充面试官:解释装饰者模式和代理模式的区别?我回答:在Java中,装饰者模式(DecoratorPattern)和代理模式(ProxyPattern)都是常用的设计模式,它们在结构上看起来有些相似,但实际上它们的目的、应用场景和实现方式存在明显的区别。下面详细解释这两种......
  • 基于nodejs+vue每日一课微党课学习管理平台[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,党员教育作为党的建设的重要组成部分,面临着如何高效、便捷、创新地传播党的理论知识与实践经验的挑战。传统的党员学习方式受限于时......
  • C:每日一题:单身狗
    ​​​​一、题目:在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字。整型数组intarr[]={1,1,2,2,3,4,4}二、思路分析:1.,明确目标,选择合适的算法我们需要在数组中找出单个出现的数字;由于相同数字异或的结果为 0 ,而任何数字......
  • 高级java每日一道面试题-2024年8月15日-设计模式篇-设计模式与面向对象原则的关系是什
    如果有遗漏,评论区告诉我进行补充面试官:设计模式与面向对象原则的关系是什么?我回答:在设计模式与面向对象原则的关系中,两者紧密相连且相互促进。面向对象的原则为设计模式的形成提供了理论基础和指导思想,而设计模式则是这些原则在特定问题域中的具体实践和实现方式。下......
  • LeetCode每日一题----特殊数组二
    解析:1.int[]nums:一个整数数组。2.int[][]queries:一个二维整数数组,每个一维数组包含两个整数,表示查询的范围。该方法的主要功能是根据给定的nums数组和一系列查询queries,判断每个查询区间[queries[i][0],queries[i][1]]内的元素是否都具有相同的奇偶性。返回一个布......
  • 每日一题:Leetcode-662 二叉树最大宽度
    力扣题目解题思路java代码力扣题目:给你一棵二叉树的根节点 root ,返回树的 最大宽度 。树的 最大宽度 是所有层中最大的 宽度 。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些......