Java基本数据类型 端口映射 Python matlotlib 海思 canvas boost vue的优点 webpack视频 flink教程视频 oracle一键卸载工具 python刷题 webapp打包 bootstrap颜色 lora开发 cad正在执行命令 python数据库 python在线教程 python中len函数 python安装 java中的正则表达式 java开发环境搭建 java接口文档 java最新框架 java类的继承 java基础课程 java接口开发 linux系统安装步骤 千千静听绿色版 微信签名一句话至自己 删除数组中的某个元素 alphacam 网络工程师教程 mpg格式转换 联想小新键盘灯怎么开 流程图制作工具 密码翻译 qq制作网页 lol无限视野 小米开发者选项
当前位置: 首页 > 学习教程  > python

[leetcode] 1423. 可获得的最大点数 python滑动窗口

2021/2/7 10:54:38 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoi…

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。

每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。

你的点数就是你拿到手中的所有卡牌的点数之和。

给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。

解法:找出中间最小的部分然后用总的减去即可。

class Solution:
    def maxScore(self, cardPoints: List[int], k: int) -> int:
        n = len(cardPoints)
        windowSize = n - k
        s = sum(cardPoints[:windowSize])
        minSum = s
        for i in range(windowSize, n):
            s += cardPoints[i] - cardPoints[i - windowSize]
            minSum = min(minSum, s)
        return sum(cardPoints) - minSum

本文链接: http://www.dtmao.cc/news_show_2000240.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?