题目 2021: 坐标排序

题目描述:

请将坐标x,y,z依照以下规则排序:

x为第一关键字,当x相同时,依照y(第二关键字)大小来排序,当y相同时,依照z大小来排序(第三关键字)

给出了若干坐标,和一个数k,请输出按关键字排序第K个的坐标。

代码:

java 复制代码
package lanqiao;

import java.util.*;

public class Main implements Comparable<Object>{
    int x,y,z;
    Main(int x,int y,int z){
        this.x=x;this.y=y;this.z=z;
    }
    //重写排序
    public int compareTo(Object o) {
        Main o1=(Main)o;
        int flag=-1;
        if(this.x>o1.x)
            flag=1;
        else if(this.x==o1.x) {
            if(this.y>o1.y)
                flag=1;
            else if(this.y==o1.y) {
                if(this.z>o1.z)
                    flag=1;
            }
            else
                flag=-1;
        }
        return flag;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        Main arr[] = new Main[n];
        for(int i=0;i<n;i++)
            arr[i]=new Main(in.nextInt(), in.nextInt(), in.nextInt());

        int k=in.nextInt();
        Arrays.parallelSort(arr);
        System.out.println(arr[k-1].x+" "+arr[k-1].y+" "+arr[k-1].z);
        in.close();
    }
}
相关推荐
yuzhiboyouye几秒前
String、StringBuilder、StringBuffer 区别(面试题)
java
小郎君6588 分钟前
keep-alive 页面怎么“真刷新”?别改外层 key——一个 refreshVersion 的完整实现
vue.js·算法
斯维赤17 分钟前
微信步数的10点定时推送,看似简单,实则暗藏玄机
java·后端
David猪大卫23 分钟前
【C++修炼】STL容器—stack与queue
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
瑶池酒剑仙24 分钟前
C++变量初始化五法完全指南:默认/拷贝/直接/列表/值初始化与窄化转换陷阱(青云之志)
c语言·开发语言·数据结构·c++·算法·visual studio
Linux_cy24 分钟前
服务器管理方案选型:面板 / SSH 客户端 / 桌面型客户端怎么选
java·linux·运维·服务器·ssh·可视化·gmssh
用户2380030994527 分钟前
从零开始实现扫雷游戏(C 语言控制台版)
算法
可乐_不渴1 小时前
【Linux】 进程虚拟地址空间
java·linux·javascript
SimonKing1 小时前
号外号外,Stream-Nexus推送项目支持集群部署了
java·后端·程序员
国科安芯1 小时前
星上计算的第一道防线:低轨遥感卫星载荷处理链中的AS32S601型抗辐射MCU—— 面向高分辨率成像与在轨智能处理的场景化综述
大数据·网络·人工智能·单片机·算法·低轨卫星·抗辐射