蓝桥杯常考排序

1.逆序 

Collections.reverseOrder() 方法对列表进行逆序排序。通过 Collections.sort() 方法配合 Collections.reverseOrder(),可以轻松实现从大到小的排序。

import java.util.ArrayList; // 导入 ArrayList 类,用于创建动态数组
import java.util.Collections; // 导入 Collections 类,提供集合操作工具方法
import java.util.List; // 导入 List 接口,表示一个有序集合public class ReverseSortExample { // 定义主类public static void main(String[] args) { // 程序的入口点// 创建一个整数列表,用于存储数字List<Integer> numbers = new ArrayList<>();// 向列表中添加一些数字numbers.add(5); // 添加数字 5numbers.add(3); // 添加数字 3numbers.add(8); // 添加数字 8numbers.add(1); // 添加数字 1numbers.add(9); // 添加数字 9// 使用 Collections.sort() 方法对列表进行排序// Collections.reverseOrder() 指定排序顺序为逆序(从大到小)Collections.sort(numbers, Collections.reverseOrder());// 输出排序后的列表System.out.println(numbers); // 打印结果,例如:[9, 8, 5, 3, 1]}
}

2.数位排序

问题描述

小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。

例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13 。

又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022 。

给定正整数 n,mn,m, 请问对 1 到 nn 采用这种方法排序时, 排在第 mm 个的元 素是多少?

输入格式

输入第一行包含一个正整数 nn 。

第二行包含一个正整数 mm 。

输出格式

输出一行包含一个整数, 表示答案。

样例输入

13
5

样例输出

3

 根据数位之和对数字进行排序,并输出第m个数字。数位之和就是把一个数字的每一位加起来,比如数字123的数位之和是1+2+3=6。

自定义排序规则

我们按照以下规则对数字进行排序:

  1. 先比较数位之和:数位之和小的数字排在前面。

  2. 如果数位之和相同:就按照数字本身的大小排序,小的排在前面。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 读取nint m = sc.nextInt(); // 读取mArrayList<Integer> list = new ArrayList<>();for (int i = 1; i <= n; i++) {list.add(i); // 把1到n的数字添加到列表中}// 使用自定义比较器进行排序Collections.sort(list, new Comparator<Integer>() {public int compare(Integer a, Integer b) {int sumA = digitSum(a); // 计算a的数位之和int sumB = digitSum(b); // 计算b的数位之和if (sumA != sumB) {return sumA - sumB; // 数位之和小的排在前面} else {return a - b; // 数位之和相同,按数值大小排序}}});System.out.println(list.get(m - 1)); // 输出第m个元素(索引从0开始)}// 计算一个数字的数位之和private static int digitSum(int num) {int sum = 0;while (num > 0) {sum += num % 10; // 取最后一位数字并加到sum中num /= 10; // 去掉最后一位数字}return sum;}
}

封闭图形个数

问题描述

在蓝桥王国,数字的大小不仅仅取决于它们的数值大小,还取决于它们所形成的“封闭图形”的个数。

封闭图形是指数字中完全封闭的空间,例如数字 11、22、33、55、77 都没有形成封闭图形,而数字 00、44、66、99 分别形成了 11 个封闭图形,数字 88 则形成了 22 个封闭图形。值得注意的是,封闭图形的个数是可以累加的。例如,对于数字 6868,由于 66 形成了 11 个封闭图形,而 88 形成了 22 个,所以 6868 形成的封闭图形的个数总共为 33。

在比较两个数的大小时,如果它们的封闭图形个数不同,那么封闭图形个数较多的数更大。例如,数字 4141 和数字 1818,它们对应的封闭图形的个数分别为 11 和 22,因此数字 4141 小于数字 1818。如果两个数的封闭图形个数相同,那么数值较大的数更大。例如,数字 1414 和数字 4141,它们的封闭图形的个数都是 11,但 14<4114<41,所以数字 1414 小于数字 4141。 如果两个数字的封闭图形个数和数值都相同,那么这两个数字被认为是相等的。

小蓝对蓝桥王国的数字大小规则十分感兴趣。现在,他将给定你 nn 个数 a1,a2,…,ana1​,a2​,…,an​,请你按照蓝桥王国的数字大小规则,将这 nn 数从小到大排序,并输出排序后结果。

输入格式

第一行包含一个整数 nn,表示给定的数字个数。

第二行包含 nn 个整数 a1,a2,…,ana1​,a2​,…,an​,表示待排序的数字。

输出格式

输出一行,包含 nn 个整数,表示按照蓝桥王国的数字大小规则从小到大排序后的结果,每两个数字之间用一个空格分隔。

样例输入

3
18 29 6

样例输出

6 29 18

样例说明

对于给定的数字序列 [18,29,6][18,29,6],数字 1818 的封闭图形个数为 22,数字 2929 的封闭图形个数为 11,数字 66 的封闭图形个数为 11。按照封闭图形个数从小到大排序后,得到 [29,6,18][29,6,18]。

由于数字 2929 和数字 66 的封闭图形个数相同,因此需要进一步按照数值大小对它们进行排序,最终得到 [6,29,18][6,29,18]。

做题思路:根据数字中“封闭图形”的数量对数字进行排序。所谓“封闭图形”是指数字中某些部分是封闭的,比如:

  • 数字0、4、6、9各有一个封闭图形。

  • 数字8有两个封闭图形。

  • 数字1、2、3、5、7没有封闭图形。

  •  自定义排序规则

    我们按照以下规则对数字进行排序:

  • 先比较封闭图形的数量:封闭图形数量少的数字排在前面。

  • 如果封闭图形数量相同:就按照数字本身的大小排序,小的排在前面。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class hh {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); // 读取n,表示要处理的数字个数List<Integer> list = new ArrayList<>();for (int i = 1; i <= n; i++) {list.add(sc.nextInt()); // 读取n个数字并添加到列表中}// 使用自定义比较器进行排序Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {int suma = f(o1); // 计算o1的封闭图形数量int sumb = f(o2); // 计算o2的封闭图形数量if (suma == sumb) {return o1 - o2; // 封闭图形数量相同,按数字大小排序} else {return suma - sumb; // 封闭图形数量少的排在前面}}});// 输出排序后的列表for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + " ");}}// 计算一个数字中封闭图形的数量public static int f(int m) {int sum = 0;while (m > 0) {int a = m % 10; // 取数字的最后一位if (a == 0 || a == 4 || a == 6 || a == 9) {sum += 1; // 这些数字有一个封闭图形} else if (a == 8) {sum += 2; // 数字8有两个封闭图形} else {sum += 0; // 其他数字没有封闭图形}m = m / 10; // 去掉最后一位数字}return sum;}
}

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

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

相关文章

ILGPU的核心功能使用详解

什么是ILGPU? ILGPU 是一种用于高性能 GPU 程序的新型 JIT&#xff08;即时&#xff09;编译器 &#xff08;也称为 kernels&#xff09;编写的 .基于 Net 的语言。ILGPU 完全 用 C# 编写&#xff0c;没有任何原生依赖项&#xff0c;允许您编写 GPU 真正可移植的程序。…

金融的未来

1. DeFi的爆发式增长与核心使命 DeFi&#xff08;去中心化金融&#xff09;的使命是重构传统金融基础设施&#xff0c;通过区块链技术实现更高的透明度、可访问性、效率、便利性和互操作性。其增长数据印证了这一趋势&#xff1a; TVL&#xff08;总锁定价值&#xff09;爆炸…

在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法,支持 npm/yarn/pnpm 等主流工具

以下是 在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法&#xff0c;支持 npm/yarn/pnpm 等主流工具&#xff1a; 一、使用 npm 1. 直接过滤依赖树 npm ls --depth0 | grep "1.1.9"说明&#xff1a; npm ls --depth0&#xff1a;仅显示直接依赖&#xf…

其利天下即将亮相第21届(顺德)家电电源与智能控制技术研讨会

2025年4月25日&#xff0c;第21届&#xff08;顺德&#xff09;家电电源与智能控制技术研讨会即将拉开帷幕&#xff0c;其利天下应大比特之邀&#xff0c;确认将参加此次研讨会。 本次研讨会&#xff0c;我司委派研发总监冯建武先生围绕《重新定义风扇驱动&#xff1a;一套算法…

阿里云OSS

目录 第三方服务-通用思路 SDK 准备工作 阿里云OSS-入门程序 .putObject 如何拿到文件对应的字节数组&#xff1f; .readAllBytes&#xff08;&#xff09; 集成阿里云OSS完成文件上传 引入阿里云OSS文件上传的工具类 上传文件接口开发 .getOriginalFilename() 程序…

李宏毅NLP-4-语音识别part3-CTC

Connectionist Temporal Classification&#xff5c;CTC 基于连接主义时间分类&#xff08;CTC&#xff09;的语音识别架构&#xff0c;具体描述如下&#xff1a; 输入层&#xff1a;底部的 x 1 , x 2 , x 3 , x 4 x^1, x^2, x^3, x^4 x1,x2,x3,x4代表输入的语音信号分帧数据…

如何构建类似云数据仓库 Snowflake 的本地数据仓库?

目录 一、Snowflake 架构的三大核心价值 二、本地数据仓库要“像 Snowflake”&#xff0c;关键在数据服务化 三、SQL2API&#xff1a;本地数据服务共享的核心引擎 ✅ 什么是 SQL2API&#xff1f; ✅ 为什么是构建本地类 Snowflake 架构的关键&#xff1f; 四、QuickAPI&a…

设计模式 - 单例模式

一个类不管创建多少次对象&#xff0c;永远只能得到该类型一个对象的实力 常用到的&#xff0c;比如日志模块&#xff0c;数据库模块 饿汉式单例模式&#xff1a;还没有获取实例对象&#xff0c;实例对象就已经产生了 懒汉式单例模式&#xff1a;唯一的实例对象&#xff0c;…

【Windows Cmake工程配置Boost库】

Windows Cmake工程配置Boost库 背景配置流程1. 下载Boost库2. 配置环境变量3. 修改CmakeLists背景 Windows环境下使用cmake开发程序,如图需要用到boost库,但是从官网下载的boost库源码没有编译成功,于是从网上下载boost预编译库,直接配置。 配置流程 1. 下载Boost库 官…

长期坚持的本质,看重休息,看轻自律

01 你有没有这样的经历&#xff0c; 年初立下减肥20斤、读完100本书、旅行10次等目标&#xff0c; 年中发现进度太慢&#xff0c; 于是降低年初目标&#xff0c; 但年终完成度仍然不及格。 只好跨年时将希望寄托于来年&#xff0c; 明年复明年&#xff0c;明年何其多。 …

Python实现贪吃蛇三

上篇文章Python实现贪吃蛇一&#xff0c;实现了一个贪吃蛇的基础版本。后面第二篇文章Python实现贪吃蛇二修改了一些不足&#xff0c;但最近发现还有两点需要优化&#xff1a; 1、生成食物的时候有概率和记分牌重合 2、游戏缺少暂停功能 先看生成食物的时候有概率和记分牌重合的…

LSTM概述

一、LSTM的背景与动机 1.1 为什么需要LSTM? 在深度学习中,普通的神经网络(如全连接网络或卷积神经网络)在处理序列数据时表现不佳,因为它们无法捕捉数据中的时间依赖关系。循环神经网络(RNN)被设计来处理序列数据,通过隐藏状态在时间步之间传递信息。然而,传统RNN存…

DDS信号发生器设计

一、基本概述 1.1 DDS简介 DDS信号发生器即直接数字频率合成&#xff08;Direct Digital Frequency Synthesis&#xff0c;简称DDS&#xff09;是一种利用数字技术生成信号的方法。它通过数字信号处理技术&#xff0c;将数字信号转换为模拟信号&#xff0c;从而生成高质量的正…

生成式AI:如何用大模型呼叫系统提升销售转化率?

生成式AI技术正以惊人的速度重塑商业版图。从智能助手到自动化营销&#xff0c;从数据分析到客户洞察&#xff0c;生成式AI正在颠覆传统商业模式&#xff0c;云蝠智能以大模型、智能体为核心技术,致力于为百万企业提供语音互动智能体平台与解决方案&#xff0c;为企业在销售转化…

OOP丨《Java编程思想》阅读笔记Chapter 6 : 访问权限控制

《Java编程思想》Chapter 6 : 访问权限控制 1. 前言 1.1. 访问权限控制的等级1.2. package关键字的引入 2. 包&#xff1a;库单元 2.1. 代码组织2.2. 包名的创建 3. Java访问权限修饰词 3.1. 包访问权限3.2. public: 接口访问权限3.3. private: 你无法访问3.4. protected: 继承…

reconic 天空 模型

目录 推理代码&#xff1a; EnvLight 代码&#xff1a; 推理代码&#xff1a; sky_model self.models["Sky"]outputs["rgb_sky"] sky_model(image_info)outputs["rgb_sky_blend"] outputs["rgb_sky"] * (1.0 - outputs["opa…

从服务器多线程批量下载文件到本地

1、客户端安装 aria2 下载地址&#xff1a;aria2 解压文件&#xff0c;然后将文件目录添加到系统环境变量Path中&#xff0c;然后打开cmd&#xff0c;输入&#xff1a;aria2c 文件地址&#xff0c;就可以下载文件了 2、服务端配置nginx文件服务器 server {listen 8080…

C++ | 可变模板参数

1. 为什么需要可变模板参数&#xff1f; 在C11之前&#xff0c;若想实现一个接受任意数量参数的函数&#xff0c;只能依赖va_list等C风格可变参数&#xff0c;但这种方式类型不安全且难以调试。例如printf函数&#xff1a; printf("%d %f %s", 10, 3.14, "hel…

【机器学习】每日一讲-朴素贝叶斯公式

文章目录 **一、朴素贝叶斯公式详解****1. 贝叶斯定理基础****2. 从贝叶斯定理到分类任务****3. 特征独立性假设****4. 条件概率的估计** **二、在AI领域的作用****1. 文本分类与自然语言处理&#xff08;NLP&#xff09;****2. 推荐系统****3. 医疗与生物信息学****4. 实时监控…

AI Agents系列之AI代理的类型

在本文中,我们将探讨不同类型的 AI 代理,包括它们的实现、实际应用、优势和局限性。从简单反射代理到多代理系统,我们将了解这些模型如何推动自动化、决策制定和智能问题解决。 文章目录 1. AI代理的类型1.1 简单反射代理1.1.1 实现**1.1.2 优势****1.1.3 局限性**1.2 基于…