游游拿到的一个数组,其中一些数被染成红色,另一些数被染成蓝色。 游游每次操作,可以使得所有红色的数加1,或者可以使得所有蓝色的数减1。一共可以操作任意次。 游游希望最终数组的最大值减去最小值的差尽可能小,你能帮她求出这个差吗?

区块链毕设网qklbishe.com为您提供问题的解答

游游拿到的一个数组,其中一些数被染成红色,另一些数被染成蓝色。
游游每次操作,可以使得所有红色的数加1,或者可以使得所有蓝色的数减1。一共可以操作任意次。
游游希望最终数组的最大值减去最小值的差尽可能小,你能帮她求出这个差吗?

import java.util.Scanner;  // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         // 注意 hasNext 和 hasNextLine 的区别         int n = in.nextInt();         while (in.hasNextInt()) { // 注意 while 处理多个 case             int m = in.nextInt();             int nums[] = new int[m];             for(int i = 0;i<m;i++) {                 nums[i] = in.nextInt();             }             String colors = in.next();              int ans = calculate(m,nums,colors);             System.out.println(ans);         }     }      public static int calculate(int m, int nums[], String colors) {         int maxR = Integer.MIN_VALUE, maxB = Integer.MIN_VALUE;         int minR = Integer.MAX_VALUE, minB = Integer.MAX_VALUE;         for(int i = 0;i<m;i++) {             if (colors.charAt(i) == 'R') {                 maxR = Math.max(maxR, nums[i]);                 minR = Math.min(minR, nums[i]);             } else {                 minB = Math.min(minB, nums[i]);                 maxB = Math.max(maxB, nums[i]);             }         }         int curMax = Math.max(maxR, maxB);         int curMin = Math.min(minR, minB);         int ans = curMax - curMin;         while(maxR < maxB) {             maxR ++;             minR ++;         }         while(maxB > maxR) {             maxB --;             minB --;         }         ans = Math.min(ans, maxR - Math.min(minR, minB));          return ans;     } }

11:09

以上就是关于问题游游拿到的一个数组,其中一些数被染成红色,另一些数被染成蓝色。
游游每次操作,可以使得所有红色的数加1,或者可以使得所有蓝色的数减1。一共可以操作任意次。
游游希望最终数组的最大值减去最小值的差尽可能小,你能帮她求出这个差吗?的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游拿到的一个数组,其中一些数被染成红色,另一些数被染成蓝色。 游游每次操作,可以使得所有红色的数加1,或者可以使得所有蓝色的数减1。一共可以操作任意次。 游游希望最终数组的最大值减去最小值的差尽可能小,你能帮她求出这个差吗?