【每日一题Day327】LCP 50. 宝石补给 | 模拟

简介: 【每日一题Day327】LCP 50. 宝石补给 | 模拟

LCP 50. 宝石补给

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

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

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

  • 思路
    模拟宝石的赠送过程,最后统计最大宝石数目和最小宝石数目,返回其差值
  • 实现
class Solution {
    public int giveGem(int[] gem, int[][] operations) {
        for (int[] opt : operations){
            int x = opt[0], y = opt[1];
            gem[y] += gem[x]/ 2;
            gem[x] -= gem[x] / 2;
        }
        int max = gem[0], min = gem[0];
        for (int num : gem){
            max = Math.max(num, max);
            min = Math.min(num, min);
        }
        return max - min;
    }
}

复杂度

时间复杂度:O ( n )

空间复杂度:O ( 1 )

目录
相关文章
|
8月前
【每日一题Day332】LCP 06. 拿硬币 | 模拟
【每日一题Day332】LCP 06. 拿硬币 | 模拟
43 0
|
8月前
【每日一题Day313】LC2511最多可以摧毁的敌人城堡数目 | 模拟
【每日一题Day313】LC2511最多可以摧毁的敌人城堡数目 | 模拟
50 0
|
8月前
【错题集-编程题】空调遥控(二分 / 滑动窗口)
【错题集-编程题】空调遥控(二分 / 滑动窗口)
|
8月前
|
算法 测试技术 C#
【数学知识】LCP42: 玩具套圈
【数学知识】LCP42: 玩具套圈
LCP 50. 宝石补给(每日一题)
LCP 50. 宝石补给(每日一题)
57 0
|
算法 C语言
力扣 - LCP 18. 早餐组合
力扣 - LCP 18. 早餐组合
125 0
|
算法 安全 C++
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
286 0
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移
|
存储 算法 机器人
【算法刷题】—7.14模拟,数组螺旋输出,机器人走路
✨今日算法三题 1.二进制求和 2.螺旋矩阵 3.模拟行走机器人
【算法刷题】—7.14模拟,数组螺旋输出,机器人走路
|
Java
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
171 0

热门文章

最新文章