Java_22 蓝桥杯真题——拼数

该篇文章详细讲解了如何使用Java的Scanner和自定义排序方法计算一系列正整数的最大连接数,涉及到了输入处理和数值比较技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述


给定几 个正整数 a1,a2....,an,你可以将它们任意排序,
现要将这 几 个数字连接成一排,即令相邻数字收尾相接,组成一个数。
问,这个数最大可以是多少。
输入格式
第一行输入个正整数 n(l < n< 20)。
第二行输入几 个正整数 a1,a2,...,an(1 ≤ ai ≤ 105)
输出格式
输出一个整数,表示答案。
样例输入
13 312 343
样例输出
34331213
运行限制
。最大运行时间:1S
。最大运行内存:256M

解答

import java.util.Scanner;
import java.util.Arrays;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);
      int n =scan.nextInt();//转换为整型
      scan.nextLine();//接受回车键,将被next()去掉的Enter等结束符过滤掉
      String[] a=new String[n];
      for(int i=0;i<n;i++){
        a[i]=scan.next();//Scanner输入字符串
      }

      //排序,🤔
      Arrays.sort(a,(x,y)->{
        return (x+y).compareTo(y+x);
      });

      for(int i=n-1;i>=0;i--){
        System.out.print(a[i]);
      }

        scan.close();
    }
}

学习

java中Scanner类nextLine()和next()的使用方法和注意事项

Java中Arrays.sort()的三种常用用法(自定义排序规则)

Java compareTo() 方法

Java String 类

### Java蓝桥杯竞赛历年真题 关于Java蓝桥杯竞赛的历年真题,这类题目通常涵盖了广泛的计算机科学基础知识以及编程技巧。对于特定类型的算法问题,如图论中的着色问题,可以参考如下示例[^1]: #### 图的着色问题实例 给定`n`个人参加某项特殊考试。为了保证公平性,规定任何两个相识的人不得被分配到同一考场。此问题可以通过构建无向图来表示人与人间的关系,其中顶点代表考生,边则连接相互认识的两人。目标是最小化所需的不同颜色目——即考场量,使得相邻节点不会拥有相同颜色。 ```java import java.util.*; public class ExamArrangement { private static int minColors(int[][] graph) { List<Integer>[] adjList = new ArrayList[graph.length]; Arrays.setAll(adjList, k -> new ArrayList<>()); for (int i = 0; i < graph.length; ++i) for (int j = i + 1; j < graph[i].length; ++j) if (graph[i][j] == 1){ adjList[i].add(j); adjList[j].add(i); } Map<Integer, Integer> colorMap = new HashMap<>(); boolean[] usedColor; int maxColor = 0; for (int v = 0; v < graph.length; ++v) { usedColor = new boolean[maxColor + 1]; for (Integer u : adjList[v]) if (colorMap.containsKey(u)) usedColor[colorMap.get(u)] = true; int clr = 0; while(clr < usedColor.length && usedColor[clr]) ++clr; colorMap.put(v, clr); if (clr >= maxColor) maxColor = clr + 1; } return maxColor; } } ``` 上述代码实现了基于贪心策略解决最小染色目的方法,适用于处理此类关系约束下的资源分配挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值