Rust 力扣 - 1423. 可获得的最大点数

文章目录

题目描述

题解思路

题目所求结果存在下述等式

  • 可获得的最大点数 = 所有卡牌的点数之和 - 长度为(卡牌数量 - k)的窗口的点数之和的最小值

我们遍历长度为(卡牌数量 - k)的窗口,记录窗口内的所有点数之和的最小值

题解代码

rust 复制代码
impl Solution {
    pub fn max_score(card_points: Vec<i32>, k: i32) -> i32 {
        let k = card_points.len() - k as usize;

        let mut sum = 0;
        for i in 0..k {
            sum += card_points[i];
        }

        let mut min_win = sum;

        let mut win = sum;

        for i in k..card_points.len() {
            sum += card_points[i];
            win += card_points[i] - card_points[i-k];
            min_win = min_win.min(win);
        }

        sum - min_win
    }
}

题目链接

https://leetcode.cn/problems/maximum-points-you-can-obtain-from-cards/

相关推荐
xushichao19894 分钟前
C++中的职责链模式实战
开发语言·c++·算法
清风徐来QCQ11 分钟前
js中的模板字符串
开发语言·前端·javascript
大鹏说大话11 分钟前
数据库查询优化全攻略:从索引设计到架构演进
算法
小O的算法实验室12 分钟前
2025年IEEE TETCI SCI2区,一种用于二次无约束二进制优化的协同神经动力学算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
2301_8184190117 分钟前
C++中的协程编程
开发语言·c++·算法
add45a19 分钟前
C++中的工厂方法模式
开发语言·c++·算法
java1234_小锋20 分钟前
Java高频面试题:Spring-AOP通知和执行顺序?
java·开发语言·spring
番茄去哪了24 分钟前
Java基础面试题day02
java·开发语言·面向对象编程
無限進步D27 分钟前
二分算法 cpp
算法
xushichao198928 分钟前
C++中的工厂模式高级应用
开发语言·c++·算法