• 蓝桥杯习题


    https://www.lanqiao.cn/problems/1265/learning/

    第一题---排序

            给定一个长度为N的数组A,请你先从小到大输出它的每个元素,再从大到小输出他的每个元素。

    输入描述:

    第一行包含一个整数N

    第二行包含N个整数a1,a2,a3,...an,表示数组A的元素

    输出描述:

    输出共两行,每行包含N个整数,表示答案。

    示例:5                                                   1 2 3 5 6

               1 3 2 6 5                                       6 5 3 2 1

    1. public static void main(String[] args) {
    2. Scanner sc = new Scanner(System.in);
    3. int n = sc.nextInt();
    4. Integer []arr = new Integer[n];
    5. for (int i = 0; i < n; i++) {
    6. arr[i] = sc.nextInt();
    7. }
    8. Arrays.sort(arr);
    9. for(int x:arr){
    10. System.out.print(x + " ");
    11. }
    12. System.out.println();
    13. Arrays.sort(arr, (o1, o2) -> o2 - o1);
    14. for(int x:arr){
    15. System.out.print(x + " ");
    16. }
    17. }

    第二题---拼数

            给定n个正整数a1,a2,a3,...an,你可以将它们任意排序。现要将这n个数字连接成一排,即令相邻数字首尾相接,组成一个数。问,这个数最大可以是多少?

    输入格式:

    第一行输入一个正整数n(1<=n<=20)

    第二行输入n个正整数a1,a2,a3,...,an^{^{^{^{^{_{}^{}\textrm{}}}}}}(1<=ai<=10^{^{5}}

    输出格式:

    输出一个整数,表示答案

    示例:3                                  

               13 312 343                                             34331213

    1. public static void main(String[] args) {
    2. Scanner sc = new Scanner(System.in);
    3. int n = sc.nextInt();
    4. String []str = new String[n];
    5. for (int i = 0; i < n; i++) {
    6. str[i] = sc.next();
    7. }
    8. Arrays.sort(str,(o1,o2) -> (o2+o1).compareTo(o1+o2));
    9. StringBuilder str1 = new StringBuilder();
    10. for(String x:str){
    11. str1.append(x);
    12. }
    13. System.out.println(str1);
    14. }

    第三题:数位排序

    https://www.lanqiao.cn/problems/2122/learning/

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

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

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

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

    输入格式:

    输入第一行包含一个正整数n

    第二行包含一个正整数m

    输出格式

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

    示例:13 

               5                                  3

    1. import java.util.Arrays;
    2. import java.util.Scanner;
    3. public class Main {
    4. public static void main(String[] args) {
    5. Scanner sc = new Scanner(System.in);
    6. int n = sc.nextInt();
    7. int m = sc.nextInt();
    8. //f[i][0]表示数值大小,f[i][1]表示数位和大小
    9. int [][]f = new int [n][2];
    10. for (int i = 0; i < n; i++) {
    11. f[i][0] = i+1;
    12. String x = f[i][0]+"";
    13. for (int j = 0; j < x.length(); j++) {
    14. f[i][1] += x.charAt(j) - '0';
    15. }
    16. }
    17. Arrays.sort(f,(o1, o2) ->o1[1] == o2[1]?o1[0]-o2[0]:o1[1]-o2[1]);
    18. System.out.print(f[m-1][0]);
    19. }
    20. }
  • 相关阅读:
    vue原理相关
    单机、集群和分布式
    仿照Everything实现的文件搜索工具--SearchEverything
    大数据-之LibrA数据库系统告警处理(ALM-12043 DNS解析时长超过阈值)
    typescript核心
    Linux Cgroup 系列:CentOS 7 Systemd Cgroup 层级
    计算机毕业设计Java医疗药品管理(源码+系统+mysql数据库+Lw文档)
    NestJS——基于Node.js 服务器端应用程序的开发框架
    TDengine防火墙配置
    C++ 的异常处理,try, catch, throw
  • 原文地址:https://blog.csdn.net/m0_74343360/article/details/137178352