华为OD机试“HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序”Java编程解答

描述

输入整型数组和排序标识,对其元素按照升序或降序进行排序

数据范围: 1≤n≤1000  ,元素大小满足  0≤val≤100000 

输入描述:

第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序

输出描述:

输出排好序的数字

示例1

输入:

8
1 2 4 9 3 55 64 25
0

复制输出:

1 2 3 4 9 25 55 64

复制

示例2

输入:

5
1 2 3 4 5
1

复制输出:

5 4 3 2 1

答案1

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();Integer[] nums = new Integer[n]; // 使用 Integer 类型的数组for (int i = 0; i < n; i++) {nums[i] = scanner.nextInt();}int k = scanner.nextInt();if(k==0){Arrays.sort(nums);}else{Arrays.sort(nums, Collections.reverseOrder()); // 将升序排列的结果反转}      for (int i = 0; i < n; i++) {System.out.print(nums[i] + " ");}}
}

详解1

本题与此题考察点一致。 

华为OD机试“HJ58 输入n个整数,输出其中最小的k个”Java编程解答-CSDN博客

在Java中,Collections.reverseOrder() 是一个静态方法,返回一个 Comparator 对象,该对象可以用于对对象进行降序排序。Comparator 是一个函数式接口,用于定义对象之间的比较规则。

在这种情况下,我们使用 Collections.reverseOrder() 来创建一个 Comparator 对象,然后将其传递给 Arrays.sort() 方法,以便对数组进行降序排序。这意味着在排序数组时,比较器会将较大的元素排在前面,较小的元素排在后面。

总结一下,Collections.reverseOrder() 返回一个降序比较器,用于对数组或集合进行降序排序。

答案2

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(); // 数组元素个数int[] arr = new int[n]; // 创建数组// 输入待排序的数组for (int i = 0; i < n; i++) {arr[i] = scanner.nextInt();}int sortFlag = scanner.nextInt(); // 排序标识,0代表升序,1代表降序// 根据排序标识进行排序if (sortFlag == 0) {Arrays.sort(arr); // 升序排序} else {Arrays.sort(arr); // 先进行升序排序reverse(arr); // 然后反转数组,实现降序排序}// 输出排序后的数组for (int num : arr) {System.out.print(num + " ");}}// 反转数组private static void reverse(int[] arr) {int start = 0;int end = arr.length - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}
}

详解2 

自己写reverse函数进行反转,将升序改为降序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

授权认证登录之 Cookie、Session、Token、JWT 详解

授权认证登录之 Cookie、Session、Token、JWT 详解 一、先了解几个基础概念什么是认证&#xff08;Authentication&#xff09;什么是授权&#xff08;Authorization&#xff09;什么是凭证&#xff08;Credentials&#xff09; 二、Cookie1、了解 Cookie2、cooker的创建2、coo…

嵌入式面试

1.关键字static的作用是什么&#xff1f;为什么static变量只初始化一次&#xff1f; 1&#xff09;修饰局部变量&#xff1a;使得变量变成静态变量&#xff0c;存储在静态区&#xff0c;存储在静态区的数据周期和程序相同&#xff0c; 在main函数开始前初始化&#xff0c;在退…

C#相关热点面试题

以下是一些C#相关的热点面试题&#xff1a; 请解释一下C#中的LINQ&#xff08;Language-Integrated Query&#xff09;&#xff1f;它有什么优点&#xff1f; LINQ是C#中的一种特性&#xff0c;它允许使用类似于SQL的查询语句来操作内存中的数据集合&#xff0c;包括对象、XML、…

【刷题】双指针入门

双指针入门 双指针283.移动零1089. 复写零202. 快乐数11. 盛最多水的容器Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff01;&#xff01;&#xff01; 双指针 双指针是非常经典的算法&#xff0c;包括但…

报错:module ‘collections‘ has no attribute ‘Iterable‘

使用python 高版本&#xff0c;在使用collections遇到报错&#xff1a;module ‘collections’ has no attribute ‘Iterable’ 查了资料 在python3.9 之后collections.Iterable被弃用了。 添加修改语句 collections.Iterable collections.abc.Iterable

保留数据的重装系统教程!(win11系统)

上车警告&#xff01;&#xff01;&#xff01; 本教程无需思考&#xff0c;跟着操作一步一步来就能完成系统的重装。原理是将C盘系统重装&#xff0c;其他盘符数据保存。适用于系统盘重装数据或更改系统版本。 重要提示&#xff01;&#xff01;&#xff01; C盘有重要学习资…

python之海龟绘图

海龟绘图(turtle)是一个Python内置的绘图库,也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式,模拟一只小海龟在屏幕上爬行,而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20世纪60年代的Logo编程语言,后来一些Python程序员构建…

24计算机考研调剂 | 广西大学(211)

广西大学接收机械调剂研究生 考研调剂招生信息 学校:广西大学 专业:工学->机械工程->机械制造及其自动化 年级:2024 招生人数:70 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 广西大学是中国广西壮族自治区的一所历史…

Android开发大佬的百度美团快手等大厂Offer收割之旅,作为Android程序员都应掌握

一、概述 随着业务的发展&#xff0c;工程的逐渐增大与开发人员增多&#xff0c;很多工程都走向了模块化、组件化、插件化道路&#xff0c;来方便大家的合作开发与降低业务之间的耦合度。现在就和大家谈谈模块化的交互问题&#xff0c;首先看下模块化的几个优势。 模块化的优…

CPP编程-CPP11中的内存管理策略模型与名称空间管理探幽(时隔一年,再谈C++抽象内存模型)

CPP编程-CPP11中的内存管理策略模型与名称空间管理探幽 CPP的四大内存分区模型 在 C 中&#xff0c;**内存分区是一种模型&#xff0c;用于描述程序运行时内存的逻辑组织方式&#xff0c;但在底层操作系统中&#xff0c;并不存在严格意义上的内存分区。**操作系统通常将内存分…

太惊艳了!多微信管理利器,让你事半功倍!

作为现代社交媒体的主要平台之一&#xff0c;微信在商务领域中扮演着重要的角色。为了提高我们的工作效率&#xff0c;微信管理系统应运而生。 这个系统可以同时登录多个微信账号&#xff0c;并进行统一管理。除了便捷的登录管理功能外&#xff0c;微信管理系统还提供了许多实…

[Firefly-Linux] RK3399点亮eDP液晶屏并支持触摸

连接方法 EDP 液晶屏模组与主控的连接分为四部分: (1)屏幕背光 (2)EDP 信号 (3)电压跳线 (4)TP 触摸 屏幕背光 屏幕背光的原理图如下: BL_EN 是背光使能引脚,连接到主控的 GPIO1_A1 端口LCD_BL_PWM0 是 PWM 调光引脚,使用主控的 PWM0 端口EDP 信号 EDP 信号的…

秒杀蓝牙!华为“星闪”到底是什么?

2023年8月4日&#xff0c;华为2023HDC大会正式举办&#xff0c;鸿蒙4.0确实很惊艳&#xff0c;流畅与个性齐头并进。 但无人在意的角落&#xff0c;星闪Nearlink的星星之火即将燎原。 大会上余总对星闪一笔带过&#xff0c;众所周知&#xff0c;越不重要出现越少&#xff0c;…

JAVA集合6-TreeSet

介绍 TreeSet&#xff1a;基于红黑树实现的有序集合&#xff0c;按元素的自然顺序或自定义顺序排序。 TreeSet<String> treeSet new TreeSet<>(); treeSet.add("Item 1"); treeSet.add("Item 2");TreeSet 的底层实现是基于 TreeMap 的&…

土地利用数据分类过程教学/土地利用分类/遥感解译/土地利用获取来源介绍/地理数据获取

本篇主要介绍如何对影像数据进行分类解译&#xff0c;及过程教学&#xff0c;示例数据下载链接&#xff1a;数据下载链接 一、背景介绍 土地是人类赖以生存与发展的重要资源和物质保障&#xff0c;在“人口&#xff0d;资源&#xff0d;环境&#xff0d;发展&#x…

Resilience4J之隔离(BulkHead)

Resilience4J之隔离(BulkHead) 中文官网https://github.com/lmhmhl/Resilience4j-Guides-Chinese/blob/main/core-modules/bulkhead.md 作用是&#xff1a;限制并发。 依赖隔离&负载保护&#xff1a;用于限制对于下游服务的最大并发数量的限制 maven依赖 <!--resil…

华为OD机试“HJ12 字符串反转”Java编程解答

描述 接受一个只包含小写字母的字符串&#xff0c;然后输出该字符串反转后的字符串。&#xff08;字符串长度不超过1000&#xff09; 输入描述&#xff1a; 输入一行&#xff0c;为一个只包含小写字母的字符串。 输出描述&#xff1a; 输出该字符串反转后的字符串。 示例…

npm证书过期问题

当我们在安装某些东西的时候&#xff0c;终端会报错: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/js-md5 failed, reason: certificate has expirednpm ERR! A complete log of this run can be f…

最强模型Claude 3 Haiku速通指南在此!保姆级教学拿脚都能学会!

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

Hack The Box-Perfection

目录 信息收集 nmap dirsearch gobuster whatweb WEB 信息收集 ffuf 漏洞探索 漏洞发现 模板注入 反弹shell 提权 get user and flag 信息收集 ssh登录&get root and flag 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10…