492. 构造矩形

492. 构造矩形icon-default.png?t=M7J4https://leetcode.cn/problems/construct-the-rectangle/

难度简单122

作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:

  1. 你设计的矩形页面必须等于给定的目标面积。
  2. 宽度 W 不应大于长度 L ,换言之,要求 L >= W 
  3. 长度 L 和宽度 W 之间的差距应当尽可能小。

返回一个 数组 [L, W],其中 L 和 W 是你按照顺序设计的网页的长度和宽度
 

示例1:

输入: 4
输出: [2, 2]
解释: 目标面积是 4, 所有可能的构造方案有 [1,4], [2,2], [4,1]。
但是根据要求2,[1,4] 不符合要求; 根据要求3,[2,2] 比 [4,1] 更能符合要求. 所以输出长度 L 为 2, 宽度 W 为 2。

示例 2:

输入: area = 37
输出: [37,1]

示例 3:

输入: area = 122122
输出: [427,286]

提示:

  • 1 <= area <= 107

通过次数51,548提交次数84,728

class Solution {
    public int[] constructRectangle(int area) {
        int w = (int)Math.sqrt(area);
        while(area%w!=0)  w--;
        return new int[]{area/w,w};
    }
}

 

下面是使用C#实现描述矩形的类Rectangle的代码: ```csharp public class Rectangle { private int width; private int length; // 带参数的构造函数,初始化宽和长 public Rectangle(int w, int l) { width = w; length = l; } // 计算矩形周长的方法 public int Circle() { return 2 * (width + length); } // 计算矩形面积的方法 public int Area() { return width * length; } // 改变矩形大小的方法 public void Changsize(int w, int l) { width = w; length = l; } // 创建string类型的索引,用“宽”和“长”分别作为索引值,对应类中的成员变量width和length public string this[string key] { get { if (key.ToLower() == "宽") { return width.ToString(); } else if (key.ToLower() == "长") { return length.ToString(); } else { return "无效的索引"; } } set { if (key.ToLower() == "宽") { width = Convert.ToInt32(value); } else if (key.ToLower() == "长") { length = Convert.ToInt32(value); } } } } ``` 这个类包括了宽和长的数据成员,带参数的构造函数来初始化它们,计算矩形周长和面积的方法,改变矩形大小的方法,以及使用string类型的索引来访问宽和长的值。你可以使用以下代码来测试这个类: ```csharp Rectangle rect = new Rectangle(5, 10); Console.WriteLine("宽度为:" + rect["宽"]); Console.WriteLine("长度为:" + rect["长"]); Console.WriteLine("周长为:" + rect.Circle()); Console.WriteLine("面积为:" + rect.Area()); rect.Changsize(8, 12); Console.WriteLine("宽度为:" + rect["宽"]); Console.WriteLine("长度为:" + rect["长"]); Console.WriteLine("周长为:" + rect.Circle()); Console.WriteLine("面积为:" + rect.Area()); rect["宽"] = "6"; rect["长"] = "11"; Console.WriteLine("宽度为:" + rect["宽"]); Console.WriteLine("长度为:" + rect["长"]); Console.WriteLine("周长为:" + rect.Circle()); Console.WriteLine("面积为:" + rect.Area()); ``` 输出结果为: ``` 宽度为:5 长度为:10 周长为:30 面积为:50 宽度为:8 长度为:12 周长为:40 面积为:96 宽度为:6 长度为:11 周长为:34 面积为:66 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值