492. Construct the Rectangle(构造矩形)

问题描述

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

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

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

问题分析

采用遍历的方法来寻找答案,从area的平方根开始寻找,一开始L与W都等于area的平方根取整,然后判断LW与area的关系,如果LW>area则减小W,若LWW=area则返回答案。

代码

int* constructRectangle(int area, int* returnSize){
    int *nums = (int *)malloc(sizeof(int)*2);
    int i = (int)sqrt(area);
    if(i*i==area){
        nums[0] = i;
        nums[1] = nums[0];
    }else{
        int j = i;
        while(i*j!=area){
            if(i*j>area){
                j--;
            }else{
                i++;
            }
        }
        nums[0] = i;
        nums[1] = j;
    }
    *returnSize = 2;
    return nums;
}

提交结果截图

492. Construct the Rectangle(构造矩形)_第1张图片

你可能感兴趣的:(leetcode刷题日记,数据结构,算法,开发语言,leetcode)