LeetCode 1561. 你可以获得的最大硬币数目

01.15 力扣题目(你可以获得的最大硬币数目) 题目 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 思路 因为bob取的最小的,所以直接可以把bob丢开不要,用sort方法排序,直接去掉最小的来算,因为我们自己取的是中间的那几 阅读详情

题目链接:LeetCode 1561. 你可以获得的最大硬币数目

题意:

   有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币:

  • 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。
  • Alice 将会取走硬币数量最多的那一堆。
  • 你将会取走硬币数量第二多的那一堆。
  • Bob 将会取走最后一堆。
  • 重复这个过程,直到没有更多硬币。

给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。

返回你可以获得的最大硬币数目。

解题思路:

   将数组排序,然后从n/3的位置开始,隔一个取一个

(1) 为什么从n/3开始?

   由于是三个人,所以分成3部分,而自己如果要尽量取最多的,就得让Bob取最少的那一部分。也就是排序后的前 n/3

 (2) 为什么自己不是取中间的部分?

   中间的那部分并不是最优。这里举例

   1 1 3 4 5 6

   不是取 1 3 5    1 4 6                 而是 1 3 4     1 5 6  。这样取到的比前面的多。 所以是隔一个取一个

c++

class Solution {
public:
    int maxCoins(vector<int>& piles) {
        sort(piles.begin(), piles.end());
        int ans = 0;
        int n = piles.size();
        for(int i = n / 3; i < n; i = i + 2) {
            ans += piles[i];
        }
        return ans;
    }
};

PHP  

class Solution {

    /**
     * @param Integer[] $piles
     * @return Integer
     */
    function maxCoins($piles) {
        $ans = 0;
        sort($piles);
        $len = count($piles);
        for($i = $len / 3; $i < $len; $i = $i+2) {
            $ans = $ans + $piles[$i];
        }
        return $ans;
    }
}
AI 技术新手入门与实战指南 仅仅能对话还不够,实际应用中,我们往往需要让 AI 处理特定的业务数据。比如,从日志文件中提取错误码,或者将非结构化的用户反馈整理成 JSON 格式。这时候,自定义输入和严格的结果验证就显得尤为重要。假设我们需要让 AI 分析一段服务器日志,并只返回错误的级别和简述。请分析以下日志片段,提取所有 ERROR 级别的信息。要求输出格式为 JSON 列表,包含 'timestamp' 和 'message' 两个字段。不要输出任何多余的解释文字。日志内容: { 阅读详情

相关推荐

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1574

Leetcode 1561. 你可以获得的最大硬币数目 c#

有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 示例 1: 输入:piles = [2,4,1,2,7,8] 输出:9 解释:选出 (2, 7, 8) ,Alice 取走 8 枚硬

LiCcCcCcccCcc的博客 220

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4199

leetcode *5496. 你可以获得的最大硬币数目(周赛203)

【题目】*5496. 你可以获得的最大硬币数目 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 示例 1: 输入:piles = [2,4,1,2,7,8] 输出:9 解释:选出

Sophia_fez的博客 811

AUTOSAR Dem模块实战配置:从理论到代码生成的完整指南

本文提供了一份AUTOSAR Dem模块从理论到代码生成的完整实战配置指南。文章详细拆解了配置流程,涵盖Dem模块的核心角色、通用骨架搭建、事件与DTC映射、消抖机制配置,以及与BswM、EcuM、DCM等模块的联调方法,旨在帮助汽车电子工程师快速掌握诊断事件管理的关键配置步骤,生成可运行的代码。

3c4x5z6v7b的博客 455

ANSYS Workbench实战:用网格自适应搞定超弹性橡胶大变形仿真(附避坑命令流)

本文深入探讨了ANSYS Workbench中超弹性橡胶大变形仿真的网格自适应技术,重点解析了混合U-P单元的应用、非线性自适应网格的实战技巧及材料模型选择的注意事项。通过具体案例和命令流示例,帮助工程师有效解决橡胶仿真中的收敛问题和网格畸变挑战,提升仿真精度和效率。

weixin_42666036的博客 303

一维数组和二维数组求解硬币组合个数问题

1.利用二维数组求解硬币组合问题 private static long countWays_2(int n) { int[] coins = {1,5,10,25}; //二维数组的方式 long[][] dp = new long[7][n+1]; for (int i = 1; i <=n; i++) { dp[0][i] = 0;//用0种硬币凑成i元的组合数为0

wx805541464的专栏 401

计算机组成原理课程设计_微程序控制的简单模型机设计

微程序控制的简单模型机设计 要求 基本要求 完成一个简单主机的设计,模型机应具备如下能力:在自行设计的指令集基础上,运行自行编写的简单用户程序,实现特定运算功能。 弹性要求 在此基础上,完成必要的扩展,实现模型机的功能扩展设计,包括:实现多种运算功能(指令集的扩充)、支持更为丰富的寻址方式、有更为完善的微程序设计等。 实验软件和硬件环境 QuartusII, FPGA计算机组...

sailist的记录站 3万+

Leetcode1561. 你可以获得的最大硬币数目

Every day a leetcode 题目来源:1561. 你可以获得的最大硬币数目 解法:贪心 每一次拿硬币,我们只能拿第二多的。 根据贪心的思想,要使我们拿到的硬币数最大。 先将硬币堆从小到大排序。 每一次分配,alice拿走最大的,我们拿走第二大的,bob拿走最小的,这样一来,剩余的硬币堆是最大的,我们能拿到的硬币数也是最多的。 代码: int cmpfunc(const void *a, const void *b) { return (*(int*)a-*(int*)b); } int

ProgramNovice的博客 493

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4706

Spring AI Alibaba实战训练营-16 NL2SQL (自然语言转 SQL)应用开发指南

本文介绍了一个基于AI的智能BI应用开发项目,主要实现自然语言转SQL(NL2SQL)功能,包含对话模块、MCP模块、向量数据管理模块。项目采用Spring AI Alibaba框架,集成通义千问大模型,支持内存向量库和AnalyticDB向量数据库两种存储方案。重点展示了chat模块的三个控制器实现:AnalyticNl2SqlController用于生产环境,SimpleChatController适用于开发测试,Nl2sqlForGraphController支持基于图的复杂对话流程。系统通过将业务知

program哲学 1585

LeetCode:1561. 你可以获得的最大硬币数目(贪心 Java)

Bob每次取最小的,所以取三堆中向其中分配一个最小的堆。剩余的两个堆,在已排好的piles中,每次交替取即可。所以位置都是固定的,直接计算总和。

Cosmoshhhyyy的博客 324

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

【Leetcode 每日一题】1561. 你可以获得的最大硬币数目

Leetcode 每日一题 - 你可以获得的最大硬币数目

冠位优化 1260

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Leetcode.1561 你可以获得的最大硬币数目

考虑另外一种情况,如果选出的是 (1, 2, 8) 和 (2, 4, 7) ,你就只能得到 2 + 4 = 6 枚硬币,这不是最优解。解释:选出 (2, 7, 8) ,Alice 取走 8 枚硬币的那堆,你取走 7 枚硬币的那堆,Bob 取走最后一堆。选出 (1, 2, 4) , Alice 取走 4 枚硬币的那堆,你取走 2 枚硬币的那堆,Bob 取走最后一堆。输入:piles = [9,8,7,6,5,1,2,3,4]输入:piles = [2,4,1,2,7,8]Alice 每次都拿最大的那堆硬币。

感觉画质不如...原神的博客 425

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

leetcode1561.你可以获得的最大硬币数目

题目大意 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 输入:piles = [2,4,1,2,7,8] 输出:9 解释:选出 (2, 7, 8) ,Alice 取走 8 枚

大腿壮的博客 299

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Leetcode1561:你可以获得的最大硬币数目

(因为你和 Alice 各取一堆,Bob 取一堆不计入你的收益),但循环时需要包括最后一个可能的索引,以防在硬币堆总数不是 3 的倍数时错过最后一轮你能取的堆。然而,由于循环是每隔一个索引进行一次,实际上不会超出数组边界。从索引 1 开始,每隔一个索引选择一次(即选择排序后数组中较大的那些堆,但跳过最大的那一堆,因为那是 Alice 取的)。,这是因为每一轮会取走 3 堆,而你取的是其中的次多堆,所以总共能取的堆数是。:在循环体中,将选中的堆的硬币数量累加到。返回你获得的最大硬币总数。初始化你的收益变量。

m0_67598823的博客 439

【LeetCode刷题】1561. 你可以获得的最大硬币数目

有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 示例 1: 输入:piles = [2,4,1,2,7,8] 输出:9 解释:选出 (2, 7, 8) ,Alice 取走

StudyWinter的博客 546

每日一题LeetCode 1561. 你可以获得的最大硬币数目

1561. 你可以获得的最大硬币数目 解题思路 一,看完题目第一个想法就是需要对数组进行排序,之后取三等分,一次就是最小堆,中间堆,最大堆,取中间堆。结果发现并不是最优解。关键点在于,你取走的硬币堆可以是最大堆里面的硬币堆,只要保证有比你取的硬币堆更大的被Alice取走就行,而Bob固定,永远从最小堆里面取硬币就可以了。 示例3的分析举例 所以排序后按照从大到小的顺序遍历数组中的元素,每次遍历2个元素,其中较小的元素即为这一轮取走的硬币数量。 循环遍历次数为length/3。 解题代码.

bai_ye_的博客 407

【LeetCode】1561. 你可以获得的最大硬币数目(C++)

1561. 你可以获得的最大硬币数目1 题目描述2 示例描述2.1 示例12.2 示例22.3 示例33 解题提示4 解题思路5 代码详解 1 题目描述 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回

敲代码两年半的练习生博客 428

leetcode 1561.你可以获得的最大硬币数目

学习目标: 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 解题思路: 先将硬币数量排序,Alice一定会拿走最多的那一堆,那么就不要再让她拿第二多的堆了,然后让bob拿最少的那一

Lookatm1的博客 290

leetcode 1561. 你可以获得的最大硬币数目 中等

选出 (1, 2, 4) , Alice 取走 4 枚硬币的那堆,你取走。选出 (2, 7, 8) ,Alice 取走 8 枚硬币的那堆,你取走。, 7) ,你就只能得到 2 + 4 = 6 枚硬币,这不是最优解。你可以获得的最大硬币数目:7 + 2 = 9.考虑另外一种情况,如果选出的是 (1,枚硬币的那堆,Bob 取走最后一堆。枚硬币的那堆,Bob 取走最后一堆。返回你可以获得的最大硬币数目。, 8) 和 (2,

2401_88085478的博客 198

LeetCode-1561. 你可以获得的最大硬币数目

有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。 给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。 返回你可以获得的最大硬币数目。 示例 1: 输入:piles = [2,4,1,2,7,8] 输出:9 解释:选出 (2, 7, 8) ,Alice .

保持对编程的热情! 250

贪心——你可以获得的最大硬币数目(Leetcode 1561)

首先一看就是贪心,为了使我们拿到的尽可能大,所以就从最大开始拿,而前一个数肯定得比我们拿的大,所以如果将一个数组排序好,则我们可以这样安排

青春无问西东 岁月自成芳华 1296
上一篇: LeetCode 1560. 圆形赛道上经过次数最多的扇区
下一篇: LeetCode 1566. 重复至少 K 次且长度为 M 的模式
error0318
博客等级 码龄9年 57粉丝 515原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值