د مستطیل لیټکوډ حل جوړ کړئ


مشکل کچه په اسانۍ سره
ریاضی

ستونزه د مستطیل لیټکوډ حل جوړول وايي چې تاسو ویب ډیزاینر یاست. او تاسو ته دنده درکول کیږي چې د ویب له پا someې د ځینې مخکینۍ ټاکل شوې سیمې سره ډیزاین کړئ. دلته یو څه خنډونه دي چې په ډیزاین لګول شوي دي د ویب پا pageې اوږدوالی باید د ویب پا pageې عرض پراخې یا مساوي وي ، د ډیزاین شوي ویب پا pageې ساحه باید د ورکړل شوې ساحې سره مساوي وي. وروستی مګر لږترلږه نه ، د اوږدوالي او عرض تر مینځ توپیر باید د امکان تر کچې کوچنی وي. نو ، راځئ چې د ستونزې حل کولو ژورې ډوبولو دمخه یو څو مثالونو ته یو نظر وکړو.

د مستطیل لیټکوډ حل جوړ کړئ

area = 4
[2,2]

توضیحات: د ویب پا pageې اوږدوالی او عرض د 4 سره مساوي ساحې سره 1 × 4 یا 2 × 2 کیدی شي. مګر له هغه وخته چې موږ اړتیا لرو اوږدوالي او عرض دومره ومومئ چې دوی د دوی ترمنځ لږترلږه توپیر ولري. دا غوره ده چې د 2 × 2 ابعادو غوره کړئ. د 2 × 2 ابعاد هم تعقیبوي چې اوږدوالی یې د پا ofې له عرض سره لوی او یا مساوي دی.

area = 23
[23, 1]

توضیحي: تاسو کولی شئ د ساحې = 23 سره یوازې دوه ویب پا pagesې ولرئ. تاسو کولی شئ 23 یا dimen 1 یا 1 × 23 ابعاد ولرئ. له هغه ځایه چې ویب پا pageه د 1 × 23 ابعادو سره زموږ لومړی حالت سرغړونه کوي. موږ کولی شو ویب پا pageه یوازې د 23 × 1 اندازې سره ولرو.

د مستطیل لیټکوډ حل جوړولو لپاره تګلاره

ستونزه د مستطیل لیټکوډ حل رامینځته کول موږ څخه غوښتنه کوي چې د ویب پا pageې مناسب اندازه د ځینې مخکې ټاکل شوي ساحې سره ومومئ. د ویب پا pageې ابعاد باید لګول شوي محدودیتونه پوره کړي. درې خنډونه دا دي: اوږدوالی باید د ویب پا pageې له عرضې سره لوی وي یا مساوي وي ، د ډیزاین شوي ویب پا pageې ساحه باید د ورکړل شوې سیمې سره مساوي وي ، د اوږدوالي او عرض تر مینځ توپیر باید لږترلږه وي. موږ کولی شو په اسانۍ سره د ابعادو یوه سیټ ومومو چې ورکړل شوي خنډونه پوره کوو په ساده ډول د 1 څخه د ورکړل شوې ساحې مربع ریښې ته د بشپړتې کندې په واسطه. موږ ګورو چې ایا اوسنی انټرنیټ ساحه تقسیموي. که دا کار وکړي ، موږ ګورو چې ایا د دې هم منصب ترمینځ توپیر (د اوسني انټرجیر لخوا د ورکړل شوې ساحې ویشلو لخوا ترلاسه شوی برخه) د اوسني سیټ څخه لږ توپیر لري. که ټول شرایط پوره شي ، موږ ځواب تازه کوو.

په پیل کې ، موږ ځواب د ایرکس 1 په توګه تنظیم کوو ، ځکه چې دا تل ورکړل شوي خنډونه پوره کوي. او په حل کې ، موږ هڅه کوو یو ښه سیټ ومومئ چې د دوی ترمینځ لږ توپیر ولري. په نهایت کې ، موږ طولونه د an په توګه بیرته راګرځوو سور.

د مستطیل لیټکوډ حل جوړولو لپاره کوډ

C ++ کوډ

#include <bits/stdc++.h>
using namespace std;

vector<int> constructRectangle(int area) {
    vector<int> ans({area, 1});
    for(int i=1;i*i<=area;i++){
        if(area%i == 0 && (area/i - i)<(ans[0] - ans[1]))
            ans[0] = area/i, ans[1] = i;
    }
    return ans;
}

int main(){
    vector<int> ans = constructRectangle(4);
    cout<<ans[0]<<", "<<ans[1];
}
2, 2

جاوا کوډ

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
    public static int[] constructRectangle(int area) {
        int[] ans = {area, 1};
        for(int i=1;i*i<=area;i++){
            if(area%i == 0 && (area/i - i)<(ans[0] - ans[1])){
                ans[0] = area/i;
                ans[1] = i;
            }
        }
        return ans;
    }
    
  public static void main (String[] args) throws java.lang.Exception{
    int[] ans = constructRectangle(4);
    
    System.out.println(ans[0] + ", " + ans[1]);
  }
}
2, 2

د پیچلتیا تحلیل

د وخت پیچلتیا

O (sqrt (N)) ، چیرې چې N هغه ساحه ده چې کارونکي ته چمتو کیږي. لدې چې موږ هڅه کړې ترڅو د هغې مربع ریښې پورې د ورکړل شوې ساحې ټول ویب پا findې ومومو ، پدې توګه د وخت پیچلتیا د ننوت مربع ریښه ده.

د ځای پیچلتیا

O (1)، ځکه چې موږ یوازې دوامداره تغیرات کارول شوي. د ځای پیچلتیا هم مستقل ده.