LeetCode 492[构造矩形]

题目

链接

LeetCode 492[构造矩形]

详情

实例

提示

题解

思路

sqrt 函数求 area 的算术平方根 fl

强制转换 将算术平方根 fl 取整为 iLenth

求 iLenth 和 fl 的差:

若为0,则长宽均为 iLenth,加入容器,直接输出

若不为0,则用 for 循环将 iLenth 逐渐遍历至 area

iLenth 强制转换为浮点型 flLenth,为了求取准确的宽度

求取 flWide = area / flLenth

然后将 flWide 强制转换为整型 iWide

求 iWide 和 flWide 的差:

若不为0,则继续遍历

若为0,则:判断 iLenth 和 iWide 的大小,将大值先加入容器,小值后加入容器后输出容器

代码

class Solution {
public:
    vector<int> constructRectangle(int area) {
        
        vector<int> vecRet;
        float fl = sqrt(area);//取面积的算术平方根
        int iLenth = fl;//取整

        if (0 == iLenth - fl)//若算术平方根为整数,则长宽相等,直接输出
        {
            vecRet.push_back(iLenth);
            vecRet.push_back(iLenth);

            return vecRet;
        }

        for (; iLenth <= area; iLenth++)//遍历长
        {
            float flWide = area / (float)iLenth;//取宽
            int iWide = flWide;
            if (0 != iWide - flWide)//宽不为整数,继续遍历
                continue;
            
            //长宽为整数,直接输出
            if (iLenth > iWide)//保证长大于宽
            {
                vecRet.push_back(iLenth);
                vecRet.push_back(iWide);
            }
            else
            {
                vecRet.push_back(iWide);
                vecRet.push_back(iLenth);
            }
                
            break;
        }
        return vecRet;
            
    }
};
posted @   EricsT  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示