د کامل مربع لیټکوډ حل


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي ترلاسه کړئ Amazon
LeetCode

دا پوسټ د کامل مناسب چوکۍ لیټکوډ حل کې دی

د ستونزې بیان

په ستونزه کې "د اعتبار کامل چوکۍ" موږ ته "شمیره" راکول کیږي او موږ اړتیا لرو چې وګورو چې دا شمیره کامل مربع ده که نه. موږ باید دا د جوړ شوي sqrt فعالیت کارولو پرته چیک کړئ.

که چیرې شمیره کامل مربع وي نو بیا به سم واقع شي او نور به غلط راشي.

بېلګه

num = 25
true

وضاحت:

د کامل مربع لیټکوډ حل

25 معتبره کامل مربع دی ځکه چې د دې مربع ریښه 5 ده. نو ، ځواب سم دی.

او کړنلاره

لکه څنګه چې موږ نشو کولی جوړ شوي وظیفې وکاروو ، نو د دې ستونزې حل کولو لپاره لومړنۍ لاره دا ده چې هر شمیره له 1 څخه تر شمیره پورې چیک کړئ او مربع یې ومومئ بیا چیک کړئ چې آیا مربع د شمیر سره مساوي دی. که چیرې مربع د مساوي سره مسله وي نو شمیره د کامل کامل مربع ده نو ، موږ به ریښتیا بیرته راستون شو او که موږ بیرته راستون شو.

د هرې شمیرې په مستقیم ډول چیک کولو سره ، موږ کولی شو حل د A په کارولو سره ښه کړو دوه لمبري لټون تګلاره. پدې لید کې ، موږ اړتیا لرو چې زموږ د لټون سلسله ، د پیل نقطه ، او پای ټکی پریکړه وکړو.

  1. د پیل نقطه به 1 وي.
  2. د پای نقطه به شمیره وي ځکه چې د کومې شمیر مربع به د شمیر څخه هم لوی وي.
  3. نو بیا د دې لپاره حد دوه لمبري پلټنه تر 1 پورې شمیره ده
  4. اوس به موږ د منځ چوک ومومئ. که مربع د شمیر سره مساوي وي نو بیا به موږ سم واقع شي:
    1. که چیرې مربع د شمیر څخه لوی وي نو زموږ پای ټکی به د مینځ 1 ته راټیټ شي.
    2. د پیل ټکی به منځنۍ +1 شي.
  5. په نهایت کې ، که شمیره د کومې مربع سره سمون ونلري نو موږ به غلط بیرته راستون کړو.

کوډ

د درست کامل مربع لیټکوډ حل لپاره C ++ کوډ

#include <bits/stdc++.h> 
using namespace std; 
    bool isPerfectSquare(int num) {
        int s=1,e=num;
        while(s<=e)
        {
            long long int mid=s+(e-s)/2;
            if(mid*mid==num)
                return true;
            else if(mid*mid>num)
             e=mid-1;
            else
                s=mid+1;
        }
        return false;
    }
int main() 
{ 
 int num=25;
 cout<<boolalpha;
 cout<<isPerfectSquare(num)<<endl; 
 return 0;
}
true

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

import java.util.Arrays; 
public class Tutorialcup {
    public static  boolean isPerfectSquare(int num){
    long s=1,e=num;
        while(s<=e)
        {
            long mid=s+(e-s)/2;
            if(mid*mid==num)
                return true;
            else if(mid*mid>num)
             e=mid-1;
            else
                s=mid+1;
        }
        return false;
    }
  public static void main(String[] args) {
    int num=25;
    boolean ans=  isPerfectSquare(num);
    System.out.println(ans);
  }
}
true

د درست کامل مربع لیټکوډ حل حل پیچلتیا تحلیل

د وخت پیچلتیا

د پورتنۍ کوډ وخت پیچلتیا ده O (ننوتل). دلته n د شمیرو ارزښت دی.

د ځای پیچلتیا

د پورتنۍ کوډ د ځای پیچلتیا ده O (1) ځکه چې موږ یوازې د ځواب ذخیره کولو لپاره تغیر ورکوو.

ماخذونه