您的位置:首页 > 其它

【今日头条2017内推笔试题】二维平面整数点集

2017-08-23 17:05 253 查看


解题思路

对所有的坐标点对y进行排序,然后按y排序顺序由大到小进行遍历,定义一个变量来保存当前已经遍历坐标点的最大x值,如果,后序节点的x值大于保存的最大x值,则输出。

因为已经对y按大小进行排序,越往后遍历y值越小,而这个点想为边界点只能x值大于已经遍历序列的最大x值。这个x是逐渐递增的,题意要求x从小到大输出,因而直接输出即可。

import java.util.Arrays;
import java.util.Scanner;

class Node implements Comparable<Node> {
int x;
int y;

@Override
public int compareTo(Node o) {
// TODO Auto-generated method stub
return this.y > o.y ? -1 : ((this.y == o.y) ? 0 : 1);
}
}

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();

Node[] data = new Node
;

for (int i = 0; i < n; i++) {
Node node = new Node();
node.x = sc.nextInt();
node.y = sc.nextInt();
data[i] = node;
}
Arrays.sort(data);

long maxX = Integer.MIN_VALUE;
for (int i = 0; i < n; i++) {
if (data[i].x > maxX) {
maxX = data[i].x;
S
4000
ystem.out.println(data[i].x + " " + data[i].y);
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: