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

server/2025/3/26 0:59:51/

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/server/179105.html

相关文章

Qt窗口控件之菜单栏QMenuBar

菜单栏QMenuBar 1. QMenuBar Qt 中的菜单栏是通过 QMenuBar 类型来实现的&#xff0c;一个主控件最多只能有一个菜单栏。一个菜单栏可以添加多个菜单&#xff0c;一个菜单又可以添加多个菜单项。 每个菜单又都是一个 QMenu 类型&#xff0c;每个菜单项都是一个 QAction。 2.…

深入理解 HTML5 Web Workers:提升网页性能的关键技术解析

深入理解 HTML5 Web Workers&#xff1a;提升网页性能的关键技术解析 引言1. 什么是 Web Workers&#xff1f;Web Workers 的特点&#xff1a; 2. Web Workers 的使用方式2.1 创建一个 Web Worker步骤 1&#xff1a;创建 Worker 文件步骤 2&#xff1a;在主线程中调用 Worker 3…

蓝桥杯,冬奥大抽奖

在日常的网页开发中&#xff0c;抽奖功能是一种常见的交互设计&#xff0c;它可以增加用户的参与感和趣味性。今天&#xff0c;我将分享一个简单的抽奖转盘实现&#xff0c;它使用了HTML、CSS和JavaScript&#xff0c;非常适合初学者学习和理解前端开发的基本概念。 一、项目背…

北京交通大学第三届C语言积分赛

作者有言在先&#xff1a; 题解的作用是交流思路&#xff0c;不是抄作业的。可以把重点放在思路分析上而不是代码上&#xff0c;毕竟每个人的代码风格是不一样的&#xff0c;看别人的代码就跟做程序填空题一样。先看明白思路再看代码。 还有就是&#xff0c;deepseek真的很好用…

AI进化论:从图灵测试到智能革命的临界点

智能觉醒的起源密码(1943-2010) 在曼彻斯特维多利亚大学的实验室里,1948年"Baby"计算机完成人类首个存储程序运行实验时,艾伦图灵正在构思《计算机器与智能》。这篇划时代论文提出的"模仿游戏"测试,为人工智能奠定了哲学基础。1956年达特茅斯会议…

期权交易投资怎么操作?新手期权操作指南

期权就是股票&#xff0c;唯一区别标的物上证指数&#xff0c;会看大盘吧&#xff0c;新手做期权交易两个方向认购做多&#xff0c;认沽做空&#xff0c;双向t0交易没了&#xff0c;跟期货一样&#xff0c;对的&#xff0c;玩的也是合约&#xff0c;唯一区别没有保证金不会爆仓…

Stable Diffusion lora训练(一)

一、不同维度的LoRA训练步数建议 2D风格训练 数据规模&#xff1a;建议20-50张高质量图片&#xff08;分辨率≥10241024&#xff09;&#xff0c;覆盖多角度、多表情的平面风格。步数范围&#xff1a;总步数控制在1000-2000步&#xff0c;公式为 总步数 Repeat Image Epoch …

Django项目入门

Django项目入门 目录 1.html模板语法继承 2.表格设计(models) 3.实现部门的添加删除功能 一、html模板语法继承 比如说, 我们想要index.html继承model_tmp.html, 我们就需要用到模板继承。 用法: 语法是{% block 自定义名称 %}, 后面再跟上{% endblock %}。 model_tmp…