当前位置: 首页 > 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);可以实现快速排序

http://www.dtcms.com/a/96626.html

相关文章:

  • 端到端自动驾驶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字段元数据指南:从基础到企业级文档增强
  • 【软考备考】系统架构设计论文完整范文示例
  • iOS自定义collection view的page size(width/height)分页效果
  • 横扫SQL面试——事件流处理(峰值统计)问题
  • 8.3MW屋顶光伏+光储协同:上海汽车变速器低碳工厂的能源革命-安科瑞黄安南
  • 飞桨PP系列新成员PP-DocLayout开源,版面检测加速大模型数据构建,超百页文档图像一秒搞定
  • 解决 “Cannot read SQL script from class path resource [sql/XX.sql]“ 错误
  • 每日总结3.28
  • 卷积神经网络 - 转置卷积
  • Neo4j GDS-05-neo4j GDS 库中对应的中心性分析算法介绍
  • Netty——零拷贝
  • 上海SMT贴片技术解析与行业趋势