leetcode 1423. Maximum Points You Can Obtain from Cards(从牌中能得到的最大点数和)

海康威视摄像机SDK二次开发--提取音频保存至文件 由于最近在开发海康威视摄像头,特此记录一下如何提取音频数据,这里主要依靠语音对讲返回的音频数据,通过回调函数写入文件中,加个WAV头即可播放,编码格式可以自己设置在代码中有注释 文件结构 其中CameraInfo内容可以参看海康威视摄像机SDK二次开发–实时预览视频流保存到指定文件中 HIKSDKSaveRealData中的内容 package ClientDemo; import ClientDemo.CameraInfo; import com.sun.jna.NativeLong; import 阅读详情

There are several cards arranged in a row, and each card has an associated number of points. The points are given in the integer array cardPoints.

In one step, you can take one card from the beginning or from the end of the row. You have to take exactly k cards.

Your score is the sum of the points of the cards you have taken.

Given the integer array cardPoints and the integer k, return the maximum score you can obtain.

Example 1:

Input: cardPoints = [1,2,3,4,5,6,1], k = 3
Output: 12
Explanation: After the first step, your score will always be 1. However, choosing the rightmost card first will maximize your total score. The optimal strategy is to take the three cards on the right, giving a final score of 1 + 6 + 5 = 12.
Example 2:

Input: cardPoints = [2,2,2], k = 2
Output: 4
Explanation: Regardless of which two cards you take, your score will always be 4.

给一组牌,每次只能从头或尾抽一张,一共要抽k张,
把抽到的牌的点数加起来,问能达到的最大点数和是多少。

思路:

容易被抽牌顺序这个概念迷惑,比如是先抽头还是先抽尾呢,
其实可以忽略抽牌顺序这个概念,直接就想:头抽几张,尾抽几张。因为总有顺序能实现。

比如我想要头2张,尾一张,可以通过先头再尾再头这样的顺序实现。
头1张,尾两张,可通过尾,头,尾这样的顺序实现。

于是问题变成了数组头部取几个数字,尾部取几个数字,才能使和最大。

那么用滑动窗口的方法,首先取数组头部k个数字,这是一个窗口,然后依次从窗口右边去掉一个数字,换作数组尾部的一个数字,
直到数组头部0个数字,尾部k个数字为止。
记录下这个过程中最大的和。
在这里插入图片描述

public int maxScore(int[] cardPoints, int k) {
    int res = 0;
    int i = 0;
    int sum = 0;
    int n = cardPoints.length;
    
    while(i < k) {
        sum += cardPoints[i];
        i ++;
    }
    
    i = k - 1;
    res = sum;
    
    while(i >= 0) {
        sum = sum - cardPoints[i] + cardPoints[n - k + i];
        res = Math.max(res, sum);
        i --;
    }
    return res;
}

参考链接

sentaurus学习笔记(HFET_pGate_GaN仿真)(九) `(sdedr:define-constant-profile-placement "Ohmic.s" "Ohmic" "Pl.ohmic.s" 0.002)`这一行将`"Ohmic"`掺杂剖面放置在`"Pl.ohmic.s"`参考评估窗口中,同样`0.002`可能表示掺杂剖面在窗口中的偏移量或其他参数。欧姆接触是半导体器件中的一种低阻抗电气接触,通常需要高掺杂来减少接触电阻并提高器件性能。通过这些步骤,SDE能够为器件的源极和漏极区域设置高掺杂的欧姆接触,这对于确保器件的高性能和低接触电阻至关重要。 阅读详情

相关推荐

STM32驱动四位共阳极数码管实现高精度秒表计时器

本文详细介绍了如何使用STM32驱动四位共阳极数码管实现高精度秒表计时器。项目基于STM32F103C8T6最小系统板,通过定时器中断和GPIO控制,实现0.1秒精度的计时功能,并解析了共阳极数码管的动态扫描原理及按键消抖等关键技术。

n8m7b6v5c4的博客 951

LeetCode 1423 Maximum Points You Can Obtain from Cards

1423 Maximum Points You Can Obtain from Cards https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/ There are several cards arranged in a row, and each card has an associated number of points The points are given in the integer array card

cyberickk blog 179

KUKA机器人自动回原点程序

创建两个全局变量分别用于储存机器人的笛卡尔姿态与关节角姿态。打开System文件夹中的config文件创建全局变量的点位。在USER GROBALS用户自定义变量Userdefined variables下创建一个E6POS类型的点位,一个E6AXIS类型的点位。

A567852的博客 5210

Leetcode--纸牌游戏

牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。 牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。 他们的得分等于他们抽到的纸牌数字总和。 现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。 输入描述: 输入包括两行。 第一行包括一个正整数n(1 <= n &l...

半途行走的博客 1218

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

演化博弈论是研究个体在特定环境中如何通过策略选择与其他个体进行互动的学科。这一理论在生物学、经济学和社会科学等多个领域都有广泛应用。本文将深入探讨双方演化博弈的原理及其过程,并解读一段 MATLAB 代码,展示如何模拟这一过程。

当回首往事的时候,不会因虚度年华而悔恨,也不会因碌碌无为而羞愧。 6197

verilog实现步进电机脉冲分配器(三相六拍)基于Nexys4DDR开发板

使用Verilog HDL设计的一个能够自启动、具有正反转功能的三相六拍步进电机脉冲分配器。已经写好Nexy4DDR的管脚约束文件 可以通过Nexys4DDR开发板的PMOD接口连接步进电机进行调试。 使用verilog语言 在vivado2018.2下运行编译下载都正确,(也可在ISE,QuartusII下使用)下面是工程截图: ...

QQ_778132974的博客 2589

LeetCode1423. 可获得的最大点数 [Medium]

从数组的两端(每次操作可从任意一端)取`k`个数,使得这`k`个数的和最大

grllery的博客 445

QML实现ListView的拖动排序

现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2 import QtQuick.Dialogs 1.2 Rectangle { width: 800 ...

草上爬的博客 7563

1423. Maximum Points You Can Obtain from Cards(Leetcode每日一题-2021.02.06)

Problem There are several cards arranged in a row, and each card has an associated number of points The points are given in the integer array cardPoints. In one step, you can take one card from the beginning or from the end of the row. You have to take exa

Bryan要加油 522

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能。本篇文章主要介绍如何使用xlwings对Excel表格进行多行多列数据设置和操作,并给出相应的源代码。接着,我们可以对这个范围内的所有单元格进行操作,如设置字体颜色、填充颜色、对齐方式等。以上就是使用xlwings对Excel表格进行多行多列数据操作和设置字体颜色、填充色和对齐方式的全部内容。最后,我们可以将数据写入到单元格中,也可以从单元格中读取数据。在Excel中,可以通过。

BUG?不存在的! 712

OPTEE v4.4.0 qemu_v8环境搭建(支持Hafnium)

一、前提条件 二、拉取代码 三、下载工具链 四、修改代码 五、编译 六、运行

AI-安全-功耗 889

【LeetCode】1423. 可获得的最大点数 Maximum Points You Can Obtain from Cards (Python)

作者: 负雪明烛 id: fuxuemingzhu 公众号:每日算法题 本文关键词:LeetCode,力扣,算法,算法题,滑动窗口,递归,前缀和,preSum,刷题群 目录题目描述解题思路递归preSum滑动窗口刷题心得欢迎加入组织日期 题目地址:https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/ 题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoint.

负雪明烛 1986

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LeetCode1423. Maximum Points You Can Obtain from Cards

从前或后取k个元素和最大,转换为剩余n-k个连续窗口的元素和最小。

叶卡捷琳堡的博客 1158

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[leetcode] 1423. Maximum Points You Can Obtain from Cards

Description There are several cards arranged in a row, and each card has an associated number of points The points are given in the integer array cardPoints. In one step, you can take one card from the beginning or from the end of the row. You have to take

Learning from the mistakes 354

LeetCode——1423. 可获得的最大点数(Maximum Points You Can Obtain from Cards)——分析及代码(Java)

LeetCode——1423. 可获得的最大点数[Maximum Points You Can Obtain from Cards]——分析及代码[Java]一、题目二、分析及代码1. 滑动窗口(1)思路(2)代码(3)结果三、其他 一、题目 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k

江南土豆的博客 264

Leetcode 1423.可获得的最大点数(Maximum Points You Can Obtain from Cards)

Leetcode 1423.可获得的最大点数 1 题目描述(Leetcode题目链接) 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 输入:cardPoints = [1,2,3,4,5,6,1], k = 3 输出:12 解释:第一次行动,不管拿哪张牌,你

qq_39378221的博客 297

【Leetcode】1423. Maximum Points You Can Obtain from Cards

题目地址: https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/ 给定一个数组AAA,允许从首尾两端一共拿走kkk个数,问能拿到的数的最大和是多少。 直接枚举拿了哪些数即可。可以先算一下AAA的长kkk的前缀和是多少,这是一种方案。接着枚举左边拿k−1k-1k−1个右边拿111个的方案,接下来是左边拿k−2k-2k−2个右边拿222个的方案,以此类推。代码如下: public class Solution {

数学、算法爱好者的博客 281

LeetCode 1423 Maximum Points You Can Obtain from Cards (前缀和)

There are several cardsarranged in a row, and each card has an associated number of points. The points are given in the integer arraycardPoints. In one step, you can take one card from the beginning or from the end of the row. You have to take exactlyk...

Tc的专栏 396

Leetcode 1423:可获得最大的点数

题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1: 输入:cardPoints = [1,2,3,4,5,6,1...

weixin_35338624的博客 349

LeetCode 1423.Maximum Points You Can Obtain from Cards(可获得的最大点数) 数学,滑动窗口/Medium

文章目录1.Description2.Example3.Solution1.2. 1.Description 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 2.Example 输入:cardPoints = [1,2,3,4,5,6,1], k = 3

押切徹的博客 269

leetcode 1423. Maximum Points You Can Obtain from Cards 可获得的最大点数-耗时100

Problem:耗时100%,求出前缀和,只能拿左侧或者右侧,所以左侧和右侧数字个数可以分别是(0, k), (1, k-1), (2, k-2), (3, k-3), (4, k-4), (5, k-5), (6, k-6), …, (k, 0)求出最大值即可。

邹九的个人博客 76

滑动数组应用Leetcode1423. Maximum Points You Can Obtain from Cards

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1: 输入:cardPoints = [1,2,3,4,5,6,1], k = 3 输出:12 解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可获得点数。最优策略是

qq_51131591的博客 170

1423 可获得的最大点数(滑动窗口)

1. 问题描述: 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1: 输入:cardPoints = [1,2,3,4,5,6,1], k = 3 输出:12 解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最

二哈 383

Leetcode 1423. Maximum Points You Can Obtain from Cards (python)

题目 解法1:O(n) 利用prefix sum,遍历k种不同组合 class Solution: def maxScore(self, cardPoints: List[int], k: int) -> int: prefix_sum = [0] tmp = 0 for card in cardPoints: tmp += card prefix_sum.append(tmp)

qq_37821701的博客 361

leetcode第186场周赛

目录 第一题、分割字符串的最大得分 第二题、可获得的最大点数 第三题、对角线遍历 第四题、带限制的子序列和 leetcode第186场周赛,时间2020/04/26 10:30-12:00 第一题、分割字符串的最大得分 难度:easy,链接:https://leetcode-cn.com/problems/maximum-score-after-splitting-a-stri...

wuqindeyunque的博客 338

LeetCode第186场周赛(Weekly Contest 186)解题报告

今天周日,但是要补休,五一的。所以参赛人员少,而且题目也比较简单。 第一题:枚举。 第二题:滑动窗口 或者 前缀后缀和。 第三题:模拟。 第四题:贪心 或者 DP。 详细题解如下。 1.分割字符串的最大得分(Maximum Score after Splitting A String) AC代码(C++) 2.可获得的最大点数(Maximum Points Y...

Mikchy的博客 561

每日一题 21.02.06 LeetCode 1423. 可获得的最大点数题解

题目 https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/ 分析 等价于 寻找一个元素和最小的滑动窗口(窗口内有连续len-k个元素)。窗口两侧外侧的数之和就是我们要求的数之和。因为要求最大,所以求窗口和最小。 代码 class Solution { public int maxScore(int[] cardPoints, int k) { int len=cardPoints.len

乾坤未定,你我皆是黑马 255
上一篇: leetcode 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers(最少的“二进制数“个数)
下一篇: leetcode 1647. Minimum Deletions to Make Character Frequencies Unique(所有字母频率不同的最小删除次数)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值