LCP 50. 宝石补给(每日一题)

简介: LCP 50. 宝石补给(每日一题)

欢迎各位勇者来到力扣新手村,在开始试炼之前,请各位勇者先进行「宝石补给」。


每位勇者初始都拥有一些能量宝石, gem[i] 表示第 i 位勇者的宝石数量。现在这些勇者们进行了一系列的赠送,operations[j] = [x, y] 表示在第 j 次的赠送中 第 x 位勇者将自己一半的宝石(需向下取整)赠送给第 y 位勇者。


在完成所有的赠送后,请找到拥有最多宝石的勇者和拥有最少宝石的勇者,并返回他们二者的宝石数量之差。


注意:


赠送将按顺序逐步进行。

示例 1:


输入:gem = [3,1,2], operations = [[0,2],[2,1],[2,0]]


输出:2


解释: 第 1 次操作,勇者 0 将一半的宝石赠送给勇者 2, gem = [2,1,3] 第 2 次操作,勇者 2 将一半的宝石赠送给勇者 1, gem = [2,2,2] 第 3 次操作,勇者 2 将一半的宝石赠送给勇者 0, gem = [3,2,1] 返回 3 - 1 = 2


示例 2:


输入:gem = [100,0,50,100], operations = [[0,2],[0,1],[3,0],[3,0]]


输出:75


解释: 第 1 次操作,勇者 0 将一半的宝石赠送给勇者 2, gem = [50,0,100,100] 第 2 次操作,勇者 0 将一半的宝石赠送给勇者 1, gem = [25,25,100,100] 第 3 次操作,勇者 3 将一半的宝石赠送给勇者 0, gem = [75,25,100,50] 第 4 次操作,勇者 3 将一半的宝石赠送给勇者 0, gem = [100,25,100,25] 返回 100 - 25 = 75


示例 3:


输入:gem = [0,0,0,0], operations = [[1,2],[3,1],[1,2]]


输出:0


提示:


2 <= gem.length <= 10^3

0 <= gem[i] <= 10^3

0 <= operations.length <= 10^4

operations[i].length == 2

0 <= operations[i][0], operations[i][1] < gem.length


思路


很简单 遥遥领先

01b80e1c52db4b65aa854d248c313057.png


代码


class Solution {
public:
    int giveGem(vector<int>& gem, vector<vector<int>>& operations) {
    int m=gem.size()-1;
    for(auto &i:operations)
    {
        gem[i[1]]+=gem[i[0]]/2;
        gem[i[0]]-=gem[i[0]]/2;
    }
    sort(gem.begin(),gem.end());
    return gem[m]-gem[0];
    }
};
目录
相关文章
|
存储 运维 数据安全/隐私保护
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
|
关系型数据库 MySQL 数据库
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能
|
机器学习/深度学习 传感器 算法
Matlab 粒子群算法优化门控循环单元(PSO-GRU)的数据回归预测
Matlab 粒子群算法优化门控循环单元(PSO-GRU)的数据回归预测
|
消息中间件 存储 NoSQL
RabbitMQ学习(九):延迟队列
延时队列中,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望 在指定时间到了以后或之前取出和处理。简单来说,延时队列就是用来存放需要在指定时间内被处理的 元素的队列。 其实延迟队列就是死信队列的一种。
431 0
RabbitMQ学习(九):延迟队列
|
网络协议 Linux 网络安全
系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术
已有的应用若想使用RDMA技术改造成本高,那么有没有一种技术是不做任何改造就可以享受RDMA带来的性能优势?
系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术
|
编译器 C语言
谈柔性数组在结构体中的作用
可能你从来没有听过柔性数组这个概念,但是它确实是存在的。在C99中,结构体中最后一个成员允许是大小未知的数组,这就叫做【柔性数组】成员。
247 0
|
机器学习/深度学习 自然语言处理 算法
李宏毅老师机器学习选择题解析
李宏毅老师机器学习选择题解析
564 0
|
XML Java 程序员
spring源码之refresh第二篇
上篇文章对spring核心启动方法refresh做了整体的解读,但是只是泛泛而谈,接下来会出一系统文章对每个方法的源码进行深刻解读。
|
分布式计算 监控 大数据
“万里牛”实时数仓的演进之路
望通过本次分享,与大家分享 “万里牛”实时数仓的演进之路,希望可以借此经验帮助其他企业。
1551 0
“万里牛”实时数仓的演进之路