当前位置: 首页 > news >正文

最少刷题数

问题描述

小蓝老师教的编程课有 NN 名学生, 编号依次是 1…N1…N 。第 ii 号学生这学期 刷题的数量是 AiAi​ 。

对于每一名学生, 请你计算他至少还要再刷多少道题, 才能使得全班刷题 比他多的学生数不超过刷题比他少的学生数。

输入格式

第一行包含一个正整数 NN 。

第二行包含 NN 个整数: A1,A2,A3,…,ANA1​,A2​,A3​,…,AN​.

输出格式

输出 NN 个整数, 依次表示第 1…N1…N 号学生分别至少还要再刷多少道题。

样例输入

5
12 10 15 20 6

样例输出

0 3 0 0 7

1.主要目的:找寻排序过后的刷题中间数

具体思路如下:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //利用数组下标表示学生 值表示刷题数
        //对数组进行排序 寻找刷题中间数
        //输出中间刷题数减去已刷题数量
        int n=scan.nextInt();
        int [] arry=new int[n];
        int temp=0;
        for(int i=0;i<n;i++){
          arry[i]=scan.nextInt();
        }
         int []arry2=new int[n];
        for(int j=0;j<n;j++){
          arry2[j]=arry[j];//复制原数据
        }
        //冒泡排序
       for (int i = 0; i < n - 1; i++) {  // 控制遍历次数
        for (int j = 0; j < n - 1 - i; j++) {  // 内部比较和交换
            if (arry[j] > arry[j + 1]) {  // 相邻元素比较
                temp = arry[j];
                arry[j] = arry[j + 1];
                arry[j + 1] = temp;  // 交换元素
            }
        }
    }
    //  Arrays.sort(arry);可以直接利用该方法实现快速排序
        int num=0;
          num=arry[(n/2)];//查询中间值
       for(int i=0;i<n;i++){
         System.out.print(Math.max(0, median - arry2[i])+" ");//比较大小 使得所有负数都为0
       }
        scan.close();
    }
    }

注意点:

1.判断学生奇数偶数的影响;

在查找该题中排序后中间值的成绩要仔细分析其下标位置

如果是偶数个如:1 2 3 4 5 6  根据题目要求(刷题比他多的学生数<=刷题比他少的学生数)

则我们需要寻找到中间值4  当小于4的数刷到4个题时,恰好(刷题比他多的学生数=刷题比他少的学生数)符合要求 则目标下标6/2==3为n/2;

 

如果是奇数个如:1 2 3 4 5 6 7 根据题目要求(刷题比他多的学生数<=刷题比他少的学生数)

则我们需要寻找到中间值4  当小于4的数刷到4个题时,恰好(刷题比他多的学生数=刷题比他少的学生数)符合要求 则目标下标7/2==3依然为n/2;

经过分析 奇偶数没有影响

2.

 java中Arrays.sort(arry);可以实现快速排序

相关文章:

  • 端到端自动驾驶VLM模型:LMDrive: Closed-Loop End-to-End Driving with Large Language Models
  • 鸿蒙 ArkUI 权限配置说明
  • 【ArcGIS】ArcGIS10.6彻底卸载和ArcGIS10.2安装全过程
  • 内网穿透工具讲解
  • buu-jarvisoj_fm-好久不见52
  • Docker-MySQL安装-命令解读-常见命令-数据卷挂载-本地目录挂载-自定义镜像-网络-前端部署-DockerCompose
  • 最接近的三数之和
  • Xss复现
  • Elasticsearch 之 ElasticsearchRestTemplate 聚合查询
  • 2025年CNG 汽车加气站操作工题目分享
  • 用否定干掉无效流量:DeepBI如何精准提升亚马逊广告效果
  • JDK版本与Class版本的对应关系对照表
  • 121买卖股票的最佳时机解题记录
  • 数据不互通、审批慢?如何实现多系统智能协同
  • Java实现 自主学习一套身份证识别(识别营业执照信息和语音识别接口)
  • DeepSeek集成:如何将DeepSeek修炼成‘国殇剑舞‘
  • 数据库后续
  • python实现登录页面图形验证码
  • Pydantic字段元数据指南:从基础到企业级文档增强
  • 【软考备考】系统架构设计论文完整范文示例
  • 习近平在河南洛阳市考察调研
  • 推动粒子治疗更加可及可享!龚正调研上海市质子重离子医院
  • 8000余万元黄金投入研发后“不知去向”,咋回事?
  • 全总联合六部门印发工作指引,共保劳动者合法权益
  • 倒计时1天:走进“中国荔乡”茂名,探寻农交文旅商融合发展新模式
  • 调查:“网约摩的”上线起步价五六元,合规性及安全性引质疑