首页 > 代码库 > 百度裁减网格纸
百度裁减网格纸
题目描述
输入描述:
第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi
(-1e9<=xi,yi<=1e9)表示网格上的点
输出描述:
一行输出最小面积
输入例子:
2
0 0
0 3
输出例子:
9
代码:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int maxX=Integer.MIN_VALUE;
int minX=Integer.MAX_VALUE;
int maxY=Integer.MIN_VALUE;
int minY=Integer.MAX_VALUE;
for(int i=0;i<n;i++){
int x=sc.nextInt() ;
int y=sc.nextInt();
maxX=Math.max(x, maxX);
minX=Math.min(x, minX);
maxY=Math.max(y, maxY);
minY=Math.min(y, minY);
}
int max=Math.max(maxX-minX,maxY-minY);
System.out.println(max*max);
}
}
}
收获:(1)思路:所有的点都减在一个正方形的格子里,所以只要判断所有点的横坐标和纵坐标的最小值和最大值。
比较下横坐标和纵坐标各自最大值和最小值的差,选择差最大的作为正方形的边长即可求得最小的正方形。
(2)int maxX=Integer.MIN_VALUE;
int minX=Integer.MAX_VALUE;
int maxY=Integer.MIN_VALUE;
int minY=Integer.MAX_VALUE;
百度裁减网格纸