蓝桥杯————封闭图形个数(自定义排序问题)

embedded/2025/3/22 10:10:14/

20分钟,拿捏!1.封闭图形个数 - 蓝桥云课

1.数位排序 - 蓝桥云课

思路和数位循环一样,其实

先初始化数组,包含两个数组,一个数组arr用来统计输入的数字

另一个数组num用来统计每个数的封闭图形的个数

java">    static void init(){//        统计每个数字的封闭图形的个数num[1] = 0;num[2] = 0;num[3] = 0;num[5] = 0;num[7] = 0;num[0] =1;num[4] =1;num[6] =1;num[9] =1;num[8] =2;for (int i = 0; i <n ; i++) {arr[i] =in.nextInt();}}

然后计算每个元素的封闭图形的个数,

然后根据已经统计的0-9 每个数的封闭图形的个数 利用取余数的思想得到对应的数字,

然后将对应数字对应的封闭图形的个数加到sum中,

sum用来统计每一个输入的元素的封闭图形的总个数

java">    static int digit(int n){int sum = 0;while (n>0){sum = sum+ num[n%10];n = n /10;}return sum;}

然后利用Arrays.sort()函数进行二维排序lamda表达式

(两个排序条件)

条件1:现根据每个元素的封闭图形的总个数来进行升序排序

如果两个元素的封闭图形的总个数相等,就根据条件2进行排序

条件2,如果两个元素的封闭图形的总个数相同,就判断两个数字的大小,按照从小到大排序

java">    Arrays.sort(arr,(a,b)->{int sum1 = digit(a);int sum2 = digit(b);if(sum1!=sum2)return  sum1-sum2;return a-b;});

完整代码如下:

java">
import javax.swing.*;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;/*** @author zb* date2025/3/21 16:08*/
public class Main {static Scanner in =new Scanner(System.in);static Integer n = in.nextInt();static Integer arr[] = new Integer[n];static int num[] = new int[10];static Integer cnt[] = new Integer[n];public static void main(String[] args) {
//        初始化输入的数组init();for (int i = 0; i <n ; i++) {cnt[i] =digit(arr[i]);}Arrays.sort(arr,(a,b)->{int sum1 = digit(a);int sum2 = digit(b);if(sum1!=sum2)return  sum1-sum2;return a-b;});for (int i = 0; i <n ; i++) {System.out.print(arr[i]+" ");}in.close();}static void init(){//        统计每个数字的封闭图形的个数num[1] = 0;num[2] = 0;num[3] = 0;num[5] = 0;num[7] = 0;num[0] =1;num[4] =1;num[6] =1;num[9] =1;num[8] =2;for (int i = 0; i <n ; i++) {arr[i] =in.nextInt();}}
//    求每一个元素的封闭图形的个数static int digit(int n){int sum = 0;while (n>0){sum = sum+ num[n%10];n = n /10;}return sum;}
}

盲猜你也是跟着蓝桥14天速成训练营,加油了兄弟


http://www.ppmy.cn/embedded/174660.html

相关文章

如何实现一个纯 CSS 的滑动门导航效果,需要用到哪些技术?

大白话如何实现一个纯 CSS 的滑动门导航效果&#xff0c;需要用到哪些技术&#xff1f; 什么是滑动门导航效果 滑动门导航效果是一种常见的网页导航设计&#xff0c;当你把鼠标悬停在导航菜单的某个选项上时&#xff0c;这个选项的背景会滑动或者变化&#xff0c;就好像门打开…

VSCode C/C++ 环境搭建指南

一、前言 Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款轻量级且功能强大的跨平台代码编辑器&#xff0c;凭借丰富的插件生态和高度的可定制性&#xff0c;深受开发者喜爱。对于 C/C 开发者而言&#xff0c;在 VSCode 中搭建开发环境&#xff0c;能够获得灵活…

golang errgroup用法介绍结合

errgroup 是 Go 语言中一个非常实用的并发控制工具,它提供了比标准库 sync.WaitGroup 更强大的功能,尤其是在错误处理和并发控制方面。以下是 errgroup 的一些主要特性和使用方法: 特性 错误处理: errgroup 可以捕获并发任务中的错误,并在第一个错误发生时取消其他正在运…

await func().catch()和try{ func() }.catch(),两种写法,有什么区别

await func().catch() 和 try { await func() } catch {} 是两种处理异步操作错误的常见写法&#xff0c;虽然它们的功能相似&#xff0c;但在使用场景和细节上有一些区别。 1. await func().catch() 这种写法是将 catch 直接链式调用到 func() 上&#xff0c;捕获 func() 返…

Linux驱动开发实战(八):Pinctrl驱动中pins和npins的传递流程以及引脚状态记录详解

Linux驱动开发实战&#xff08;八&#xff09;&#xff1a;Pinctrl驱动中pins和npins的传递流程以及引脚状态记录详解 文章目录 Linux驱动开发实战&#xff08;八&#xff09;&#xff1a;Pinctrl驱动中pins和npins的传递流程以及引脚状态记录详解前言一、数据传递流程详解1.1 …

【读点论文】Chain Replication for Supporting High Throughput and Availability

在分布式系统中&#xff0c;强一致性往往和高可用、高吞吐是矛盾的。比如传统的关系型数据库&#xff0c;其保证了强一致性&#xff0c;但往往牺牲了可用性和吞吐量。而像 NoSQL 数据库&#xff0c;虽然其吞吐量、和扩展性很高&#xff0c;但往往只支持最终一致性&#xff0c;无…

微服务分层架构详解:表示层、应用层与基础设施层的协同工作

微服务分层架构详解&#xff1a;表示层、应用层与基础设施层的协同工作 文章目录 微服务分层架构详解&#xff1a;表示层、应用层与基础设施层的协同工作1. 表示层&#xff08;Presentation Layer&#xff09;1.1 表示层的作用1.2 技术选型1.3 表示层的挑战 2. 应用层&#xff…

【从零开始学习计算机科学与技术】系统工程概论(四)系统仿真 与 系统评估

【从零开始学习计算机科学与技术】系统工程概论(四)系统仿真 与 系统评估 系统仿真系统仿真的工作流程应用系统动态学模型的步骤系统与反馈反馈系统反馈回路SD结构模型化的表示因果关系图流图流图的符号流图-流图绘制程序和方法基本反馈回路的DYNAMO仿真分析基本DYNAMO方程系…