3 条题解

  • 1
    @ 2023-12-9 17:01:27
    public class Main{
        public static void main(String args[]){
        	Scanner in=new Scanner(System.in);
        	int n=in.nextInt();
        	Integer[] a=new Integer[n];
        	for(int i=0;i<n;i++) {
        		a[i]=in.nextInt();
        	}
        	Arrays.sort(a,(x,y)->{return (y%1000)-(x%1000);});
        	for(int i=0;i<n;i++) {
        		System.out.print(a[i]+" ");
        		
        	}
        }
    }
    
    • 1
      @ 2023-12-9 16:03:05

      使用桶排序效率更高 Python

      a = [-1] * 1000
      n = int(input())
      nums = list(map( int,input().split(" ")))
      for i in nums:
          a[-(i  % 1000 + 1)] = i
      [print(i , end = " ") for i in a if i != -1]
      
      • 0
        @ 2023-12-9 17:39:09

        这个办法是构建一个Num类,来进行排序

        import java.util.Arrays;
        import java.util.Scanner;
        
        
        public class Main {
            public static void main(String[] args) {
                //   HashMap<Integer, String> map = new HashMap<>();
                Scanner sc = new Scanner(System.in);
                int n = sc.nextInt();
                Num[] a = new Num[n];
                for (int i = 0; i < n; i++) {
                    a[i] = new Num();
                    String num = sc.next();
        //如果该对象的num长度大于3, 就令aa值等于num的后三位
                    if(num.length() > 3){
                        a[i].val = num;
                        a[i].aa = Integer.parseInt(num.substring(num.length() - 3));
                    }else {//否则aa值等于num值
                        a[i].val = num;
                        a[i].aa = Integer.parseInt(num);
                    }
                }
        
                //自定义排序效果与冒泡排序相同
                Arrays.sort(a, (o1, o2) -> (o1.aa - o2.aa));
                //冒泡排序, 给aa值大的对象排后面
        //        for (int i = 0; i < a.length - 1; i++) {
        //            for (int j = 0; j < a.length - i - 1; j++) {
        //                if(a[j].aa < a[j + 1].aa){
        //                    Num temp = a[j];
        //                    a[j] = a[j + 1];
        //                    a[j + 1] = temp;
        //                }
        //            }
        //        }
                for (int i = 0; i < a.length; i++) {
                    System.out.print(a[i].val + " ");
                }
            }
        }
        class Num{
            String val; //该数字的值
            int aa; //后三位的值
        }
        
        • 1

        信息

        ID
        570
        时间
        1000ms
        内存
        256MiB
        难度
        8
        标签
        (无)
        递交数
        126
        已通过
        22
        上传者