题解 | #裁减网格纸# 贪心

裁减网格纸

https://www.nowcoder.com/practice/65865c6644154bb4acca764b1480ecbb

首先理解题意,要求最小面积的正方形,其实就是找到一个正方形,能恰好把所有的点框住,并求出这个正方形的面积。

那么边输入数据边更新所有坐标的边界条件,最后再计算面积即可。

#include <climits>
#include <iostream>
using namespace std;

int main() {
    int n;
    while (cin >> n) {
        int maxX = INT_MIN, minX = INT_MAX;
        int maxY = INT_MIN, minY = INT_MAX;
        int xi, yi;
        // 更新最大最小横纵坐标
        for (int i = 0; i < n; i++) {
            cin >> xi >> yi;
            maxX = max(maxX, xi);
            minX = min(minX, xi);
            maxY = max(maxY, yi);
            minY = min(minY, yi);
        }
        // 计算横纵坐标差值
        int xDiff = maxX - minX;
        int yDiff = maxY - minY;
        // 计算最小面积
        cout << max(xDiff * xDiff, yDiff * yDiff) << endl;
    }
    return 0;
}

时间复杂度:O(n),遍历输入的数据

空间复杂度:O(1),仅使用了几个变量

全部评论

相关推荐

找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务