zoukankan      html  css  js  c++  java
  • 矩形重叠

    题目

    平面内有 n 个矩形,第 i 个矩形的左下角坐标为 (x1[i], y1[i]),右上角坐标为 (x2[i], y2[i])

    如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。

    请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。

    输入描述

    输入包括五行。
    第一行包括一个整数 n(2 <= n <= 50),表示矩形的个数。
    第二行包括 n 个整数 x1[i],表示左下角的横坐标。
    第三行包括 n 个整数 y1[i],表示左下角的纵坐标。
    第四行包括 n 个整数 x2[i],表示右上角的横坐标。
    第五行包括 n 个整数 y2[i],表示右上角的纵坐标。
    (-10^9 <= x1、y1、x2、y2 <= 10^9)

    输出描述

    输出一个正整数,表示最多的地方有多少个矩形相互重叠,如果矩形都不互相重叠,输出 1。

    样例输入

    2
    0 90
    0 90
    100 200
    100 200

    样例输出

    2

    AC 代码

    import java.util.Scanner;
    
    public class SwordToOffer {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();
            int[][] rec = new int[n][4];
            for (int j = 0; j < 4; j++) {
                for (int k = 0; k < n; k++) {
                    rec[k][j] = scanner.nextInt();
                }
            }
    
            /**
             * 思路:
             * 点计数法,重叠后的矩形左下角坐标一定是 {x1[0]~x1[50], y1[0]~y1[50]} 这2500个点中产生
             * 只要分别判断这些点在多少矩形中即可
             */
            int x, y, count, res = 1;
            for (int i = 0; i < n; i++) {
                for (int j = i + 1; j < n; j++) {
                    x = Math.max(rec[i][0], rec[j][0]);
                    y = Math.max(rec[i][1], rec[j][1]);
                    count = 0;
                    for (int k = 0; k < n; k++) {
                        if (x >= rec[k][0] && y >= rec[k][1] && x < rec[k][2] && y < rec[k][3])
                            ++count;
                    }
                    res = Math.max(count, res);
                }
            }
    
            System.out.println(res);
            scanner.close();
        }
    }
    
  • 相关阅读:
    IOS系统下虚拟键盘遮挡文本框问题的解决
    ubuntu git的安装更新及配置
    js 画布与图片的相互转化(canvas与img)
    js 图片与base64互相转换
    PHP base64数据与图片的互相转换
    js 判断当前操作系统是ios还是android还是电脑端
    ubuntu下nodejs和npm的安装及升级
    vue中使用html2canvas及解决html2canvas截屏图片模糊问题
    vue文件中引入外部js
    php 执行 命令行命令
  • 原文地址:https://www.cnblogs.com/debugxw/p/11297277.html
Copyright © 2011-2022 走看看