百度一下网址大全,小红书关键词排名优化,网页首页设计模板免费,沙漠风网站建设6每位勇者初始都拥有一些能量宝石#xff0c; gem[i] 表示第 i 位勇者的宝石数量。现在这些勇者们进行了一系列的赠送#xff0c;operations[j] [x, y] 表示在第 j 次的赠送中 第 x 位勇者将自己一半的宝石#xff08;需向下取整#xff09;赠送给第 y 位勇者。
在完成所有…
每位勇者初始都拥有一些能量宝石 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^30 gem[i] 10^30 operations.length 10^4operations[i].length 20 operations[i][0], operations[i][1] gem.length
题解水题注意向下取整的逻辑。code:
class Solution {public int giveGem(int[] gem, int[][] operations) {int max Integer.MIN_VALUE;int min Integer.MAX_VALUE;for (int i 0; i operations.length; i) {int tmp gem[operations[i][0]] / 2;gem[operations[i][0]] - tmp;gem[operations[i][1]] tmp;}for (int i 0; i gem.length; i) {if (max gem[i]) {max gem[i];}if (min gem[i]) {min gem[i];}}return max -min;}
}