Python |石子游戏的最大得分

引言

力扣(LeetCode),未来不止于此!

问题描述

你正在玩一个单人游戏,面前放置着大小分别为 a、b和c的三堆石子。

每回合你都要从两个不同的非空堆 中取出一颗石子,并在得分上加 1 分。当存在两个或更多的空堆时,游戏停止。

给你三个整数a、b和c,返回可以得到的最大分数 。

示例 1:

输入:a = 2, b = 4, c = 6

输出:6

解释:石子起始状态是 (2, 4, 6) ,最优的一组操作是:

- 从第一和第三堆取,石子状态现在是 (1, 4, 5)

- 从第一和第三堆取,石子状态现在是 (0, 4, 4)

- 从第二和第三堆取,石子状态现在是 (0, 3, 3)

- 从第二和第三堆取,石子状态现在是 (0, 2, 2)

- 从第二和第三堆取,石子状态现在是 (0, 1, 1)

- 从第二和第三堆取,石子状态现在是 (0, 0, 0)

总分:6 分 。

示例 2:

输入:a = 4, b = 4, c = 6

输出:7

解释:石子起始状态是 (4, 4, 6) ,最优的一组操作是:

- 从第一和第二堆取,石子状态现在是 (3, 3, 6)

- 从第一和第三堆取,石子状态现在是 (2, 3, 5)

- 从第一和第三堆取,石子状态现在是 (1, 3, 4)

- 从第一和第三堆取,石子状态现在是 (0, 3, 3)

- 从第二和第三堆取,石子状态现在是 (0, 2, 2)

- 从第二和第三堆取,石子状态现在是 (0, 1, 1)

- 从第二和第三堆取,石子状态现在是 (0, 0, 0)

总分:7 分 。

示例 3:

输入:a = 1, b = 8, c = 8

输出:8

解释:最优的一组操作是连续从第二和第三堆取 8 回合,直到将它们取空。

注意,由于第二和第三堆已经空了,游戏结束,不能继续从第一堆中取石子。

算法描述

抓住问题,通过仔细观察分析问题的解释,可以发现当出现实例1中a+b=c的情况时,它的得分等于a+b,后面实例2中第二次取石子时a+b也等于c,那么就可以得出规律,当出现a+b=c时,得分就等于a+b,其中的a,b不是固定,但是c肯定为三个数字中的最大数值,那么就可以通过三个数值的大小数值去进行解题。当a+b<=c时,返回的数值为a+b。

实习编辑:李欣容

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 终于学完国内算法第一人10年经验总结的数据结构与算法详解文档

    相信想进一线大厂的程序员是非常多的,也是程序员一直以来的梦,不仅仅是因为薪资比较高,更多的是因为大厂比较锻炼人,将来的发展空间也是非常大的! 近年来,在面试大厂中,算法的比重是越来越高了,像BATJ ...

  • 724 响应面法优化培养基-Design-Expert软件应用示例

    本篇主要由王珍整理. 常用软件 响应面法优化的常用软件有Design-Expert.Minitab.Statistica.JMP和 Matlab等,其中Design-Expert 应用较广泛(响应面法 ...

  • 读书:《心流:最优体验心理学》

    (图片来源于网络) 其实我是不用读这本书的. 心流体验对于别人来说很是难得,可是对于我来说,一个觉得每天的时间都过得飞快的人来说,几乎每天都有心流体验. 之所以读这本书,是因为儿子在前几天对我说:&q ...

  • 已受理|忻州市和平东街车辆抛洒石子的问题

    有拍友反映: 和平东街上拉石子的大车不盖篷布,石子撒的满路都是,骑的电动车不好走,轮胎都让石子扎破了,希望交警队能加大处罚力度,晚上大车都不盖篷布,撒的更厉害. (图片来源于网络) 今日金句 常听一句 ...

  • Github 助你实现“家国梦”

    长假期间,在几个群里被一款极具正能量的游戏给刷屏了: 游戏名<家国梦> 毕竟是开发过王者荣耀的天美工作室出品,游戏画风看着挺舒服,又是我这种佛系玩家+强迫症喜欢的放置类游戏.于是乎,沉迷了 ...

  • 卡尔曼滤波详解

    这篇主要介绍卡尔曼滤波公式详细推导,使用示例参考卡尔曼滤波示例. Kalman Filter 简单介绍 主要讲解基本的卡尔曼滤波算法,有时候也说是离散或者线性卡尔曼滤波. 首先来看一个数学公式,这部分 ...

  • 熟记“胜利之数”,“取石子游戏”你一定赢(适合1-6年级)

    [题记] 其作始也简,其将毕也必巨.--<庄子·内篇·人间世> 带好一个团队,成就你我:做实一个常规,扎实有效:定位一个重点,尝试反馈:抓住一个核心,质量为本:改变一种理念,学为中心:关注 ...

  • 利用python开发游戏

    今天我们利用python的tkinter来制作几个简单小游戏 首先我们了解下tkinter Tkinter: Tkinter模块(TK接口)是Python的标准Tk GUI工具包的接口.Tkinter ...

  • Python|跳跃游戏

    前言 贪心算法是指在对问题求解时,不从整体最优考虑,只是局部的最优考虑.所以贪心算法可能不能达到最优解,贪心算法也有正确的时候,求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法.贪心算 ...

  • 源码精灵游戏小程序,python入门游戏,点开既玩

    沐沐带你发现好游戏! 丑姐儿今天给大家伙儿介绍一款小游戏, 名字叫做源码精灵, 看着应该是一款商业化的小游戏, 不过也是良心制作的了, 很Q萌. 这一款和头脑风暴有一点点儿类似的地方就是答题, 是的莫 ...

  • Python|随机函数——纸牌游戏的发牌机制

    问题描述在手机日益重要的当今社会,有很多人都在使用手机上的小程序在玩着各类纸牌游戏.那么今天,我讲述的是用python实现纸牌游戏中的一种--"七王五二三"的发牌.示例:运用ran ...

  • Python游戏编程(Pygame)

    安装Pygame pip install pygame 1 C:\Users> pip install pygame Collecting pygame Downloading https:// ...

  • 用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  • 好玩又有趣的Python实例小游戏代码,我能在电脑上琢磨一天

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...

  • Python简单通俗易懂的贪吃蛇小游戏,儿时童年的味道!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 今天,给大家介绍一个简单易懂的贪吃蛇小游戏 代码 如下 import pygame,sys, ...