力扣(leetcode) 492. 构造矩形

该博客介绍了如何利用Python解决LeetCode上的一个问题——构造最小差值矩形。通过分析问题,作者指出可以将问题简化为寻找宽度最接近面积平方根的正整数解。代码中展示了如何从面积的平方根开始向1递减搜索,当找到的宽度能被总面积整除时,返回长和宽,从而达到最小差值。这是一个典型的数学和算法结合的编程挑战。
摘要由CSDN通过智能技术生成

题目在这:https://leetcode-cn.com/problems/construct-the-rectangle/

思路分析:

题目中所说的构造矩形,其实可以是我们认知里的正方形。毕竟严格来讲正方形也是一种特殊的矩形。所以这里要注意。

题目要求找到长和宽的差值最小的哪一种分配方法。
并且宽度不可能超过总面积的开方值。
比如 总面积为4 则宽为1或者2 , 总面积为10 则宽为2或者1。

所以我们直接从面积的开方值处向1遍历。
如果找到 面积 / 宽 为正整数的情况下,说明已经找到了长,此时也是长和宽差值最小的情况。

完整代码:

class Solution:
    def constructRectangle(self, area: int) -> List[int]:
        import math
        w = int(math.sqrt(area))
        while w >= 1:
            if area % w == 0:
                return [area//w,w]
            w -=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度不学习!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值