小红拿到了一个数组:。她定义 f(i) 为,删除第个元素后,数组的中位数。现在小红想让你求出的值,你能帮帮她吗?
区块链毕设网qklbishe.com为您提供问题的解答
小红拿到了一个数组:。她定义 f(i) 为,删除第个元素后,数组的中位数。现在小红想让你求出的值,你能帮帮她吗?
用java一个一个打印会超时,需要先把结果存到一个字符串里才行
import java.util.*; import java.text.DecimalFormat; import java.lang.StringBuilder; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); List<Integer> list1 = new ArrayList<>(); List<Integer> list2 = new ArrayList<>(); for(int i=0;i<n;i++){ int a = in.nextInt(); list1.add(a); list2.add(a); } Collections.sort(list2); DecimalFormat df = new DecimalFormat("#.0"); StringBuilder res = new StringBuilder(); if(n % 2 == 0){ double ans1 = (double)list2.get(n/2); double ans2 = (double)list2.get(n/2-1); double median = (list2.get(n/2) + list2.get(n/2-1))/(double)2; for(int i=0;i<n;i++){ if(list1.get(i) < median){ res.append(df.format(ans1)); } else res.append(df.format(ans2)); res.append("n"); } System.out.println(res); } else{ double median = (double)list2.get((n-1)/2); double ans1 = (list2.get(n/2) + list2.get(n/2+1))/(double)2; double ans2 = (list2.get(n/2-1) + list2.get(n/2+1))/(double)2; double ans3 = (list2.get(n/2) + list2.get(n/2-1))/(double)2; for(int i=0;i<n;i++){ if(list1.get(i) < median){ res.append(df.format(ans1)); } else if(list1.get(i) == median){ res.append(df.format(ans2)); } else res.append(df.format(ans3)); res.append("n"); } System.out.println(res); } } }
44:56
以上就是关于问题小红拿到了一个数组:。她定义 f(i) 为,删除第个元素后,数组的中位数。现在小红想让你求出的值,你能帮帮她吗?的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训