• 笔试题算法系列(二)百度裁剪网格纸


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

    输入描述:
    第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表示网格上的点
    输出描述:
    一行输出最小面积
    输入例子1:
    2
    0 0
    0 3
    输出例子1:
    9

    代码如下:
     1 import java.util.Scanner;
     2 public class Main{
     3     public static void main(String [] args){
     4         Scanner sc = new Scanner(System.in);
     5         String [] line;
     6         while(sc.hasNext()){
     7             line = sc.nextLine().split(" ");
     8             int n = Integer.parseInt(line[0]);
     9             line = sc.nextLine().split(" ");
    10             int x0 = Integer.parseInt(line[0]);
    11             int y0 = Integer.parseInt(line[1]);
    12             int minX = x0;
    13             int maxX = x0;
    14             int minY = y0;
    15             int maxY = y0;
    16             for(int i=1; i<n; i++){
    17                 line = sc.nextLine().split(" ");
    18                 int xi = Integer.parseInt(line[0]);
    19                 int yi = Integer.parseInt(line[1]);
    20                 minX = Math.min(minX, xi);
    21                 maxX = Math.max(maxX, xi);
    22                 minY = Math.min(minY, yi);
    23                 maxY = Math.max(maxY, yi);
    24             }
    25             int borderSize = Math.max(Math.abs(maxX-minX),Math.abs(maxY-minY));
    26             int s = borderSize*borderSize;
    27             System.out.println(s);
    28         }
    29         sc.close();
    30     }
    31 }
  • 相关阅读:
    swift 关于闭包
    swift 多线程的使用
    线上故障解决流程解读
    coredata (转)
    归档
    NSSearchPathForDirectoriesInDomains
    【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例(转载)
    Objective-C Runtime (Runtime Library)转发
    Mac电脑系统降级(转载)
    UILabel
  • 原文地址:https://www.cnblogs.com/haimishasha/p/10637581.html
Copyright © 2020-2023  润新知