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;
    }
  • 相关阅读:
    发布机制:功能开关发布
    发布机制:蛮力发布
    发布机制-滚动式发布:百科
    发布机制-灰度发布:百科
    发布机制:金丝雀发布
    发布机制-蓝绿发布:百科
    发布机制:百科
    服务安全-IAM:百科
    Workflow-产品:泛微工作流引擎
    android Fragment
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6747552.html
Copyright © 2011-2022 走看看