百度裁减网格纸

Posted code666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度裁减网格纸相关的知识,希望对你有一定的参考价值。

题目描述

度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
输入描述:
第一行一个数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;

 

 


以上是关于百度裁减网格纸的主要内容,如果未能解决你的问题,请参考以下文章

如何在kotlin的片段内显示网格视图?

片段中的网格视图

Forge Viewer - 如何在场景中访问(或获取渲染/片段代理)克隆的网格?

在片段着色器中丢失纹理定义

计数难题6:luoguP4935 口袋里的纸飞机

片段内的网格适配器不起作用