zoukankan      html  css  js  c++  java
  • 492. Construct the Rectangle(LeetCode)

    For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L and width W satisfy the following requirements:

    1. The area of the rectangular web page you designed must equal to the given target area.
    
    2. The width W should not be larger than the length L, which means L >= W.
    3. The difference between length L and width W should be as small as possible.

    You need to output the length L and the width W of the web page you designed in sequence.

    Example:

    Input: 4
    Output: [2, 2]
    Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. 
    But according to requirement 2, [1,4] is illegal; according to requirement 3,  [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2.
    

    Note:

    1. The given area won't exceed 10,000,000 and is a positive integer
    2. The web page's width and length you designed must be positive integers.

    Subscribe to see which companies asked this question.

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    class Solution {
    public:
        vector<int> constructRectangle(int area) {
            int L, M, C1 = 1 - area;
            vector<int> v(2,0);
            if (area == 1)
            {
                v[0] = 1;
                v[1] = 1;
            }
            else
            {
                for (int i = 1; i <= area; i++)
                {
                    L = i;
                    M = area / L;
    
                    if (L*M == area)
                    {
                        if (L >= M && (L - M) <= abs(C1))
                        {
                            C1 = L - M;
                            v[0]=L;
                            v[1]=M;
    
                        }
                    
                    }
    
                }
                
            }
            return v;
        }
    };
    int main()
    
    {
        Solution a;
        vector<int> s;
        s=a.constructRectangle(2);
        for (int i = 0; i < s.size(); i++)
        {
            cout << s[i] << endl;
        }
        system("PAUSE");
        return 0;
    }
  • 相关阅读:
    XCTF Guess-the-Number
    XCTF 3rd-GCTF-2017 hackme
    XCTF IgniteMe
    hdu 1713 相遇周期
    hdu 2092 整数解(一元二次方程解)
    failed to find romfile "efi-virtio.rom"
    在KVM主机和虚拟机之间共享目录
    Ubuntu下载连接(阿里云镜像)
    ubuntu apt-mirror 同步源到本地
    ubuntu 构建 deb 安装包
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6747552.html
Copyright © 2011-2022 走看看