اجزاء کو دو نو صفر انٹیجرز لیٹکوڈ حل کے جوس میں تبدیل کریں


مشکل سطح آرام سے
اکثر پوچھا جاتا ہے HRT
ریاضی

مسئلہ دو نو صفر انٹیجرز لیٹ کوڈ حل کے سمج میں انٹیجر کو تبدیل کردیں جس نے ہمیں دیئے گئے حصے میں تقسیم کرنے کو کہا عددی. ہمیں دیئے گئے عدد کو دو نمبروں میں تقسیم کرنا چاہئے۔ ان دونوں عدد پر ایک پابندی عائد ہے۔ ان دونوں اعداد میں 0 کا ہندسہ نہیں ہونا چاہئے۔ بہتر تفہیم کے ل we ، ہم کچھ مثالوں پر ایک نظر ڈالیں گے۔

اجزاء کو دو نو صفر انٹیجرز لیٹکوڈ حل کے جوس میں تبدیل کریں

n = 2
[1,1]

وضاحت: آؤٹ پٹ میں دونوں اعداد ایک اور 1 ہیں۔ اعداد ایک جیسے ہوسکتے ہیں لیکن ان کا ہندسہ نہیں ہونا چاہئے۔ آؤٹ پٹ میں رکاوٹ پوری ہوتی ہے۔ دونوں عدد کا مجموعہ بھی ان پٹ کے برابر ہے۔ اس طرح آؤٹ پٹ درست ہے۔

n = 1010
[11, 999]

وضاحت: آؤٹ پٹ درست ہے کیونکہ دونوں انٹیجرز کا مجموعہ 1010 کے برابر ہے۔ اور ان کے پاس 0 کے برابر کوئی ہندسہ بھی نہیں ہے۔

کنٹورٹ انٹیجر کے لئے نو نمبر زیرو انٹیجرز لیٹ کوڈ حل کے خلاصہ تک رسائی

مسئلہ نے ہم سے پوچھا ہے کہ دیئے گئے ان پٹ کو دو عدد میں تقسیم کریں۔ اس شرط کو جو پورا ہونا چاہئے ، اوپر کی وضاحت میں پہلے ہی بیان کیا گیا ہے۔ پہلی شرط یہ ہے کہ عدد کا مجموعہ دئے جانے والے عدد کے برابر ہونا چاہئے۔ دو عددی اشکال جو لوٹائے جائیں گے کیونکہ آؤٹ پٹ میں کوئی 0 ہندسہ نہیں ہونا چاہئے۔ مسئلے کو حل کرنے کے ل we ، ہم پہلے عددی سے ایک لوپ چلاتے ہیں جو 1 سے n تک ہوتا ہے۔ دوسرے عدد کو پہلے رشتے سے کم کیا جاسکتا ہے۔ پھر ہم جانچتے ہیں کہ کیا دونوں عدد دوسری شرط کو پورا کرتے ہیں۔

دوسری حالت کی جانچ پڑتال کے ل we ، ہم ایک حسب ضرورت فنکشن تیار کرتے ہیں جس میں ایک ان پٹ کے طور پر ایک عدد عدد لیتا ہے۔ یہ اس بات پر منحصر ہے کہ دیئے گئے عدد میں 0 ہے یا نہیں اس پر منحصر ہے۔ یہ جاننے کے لئے کہ ہم ہندسوں کو اختتام پر ایک ایک کرکے ختم کرتے رہتے ہیں۔

ضابطے

سی ++ کوڈ دو عدد زیرو انٹیجرز لیٹ کوڈ حل کے جوڑے میں انٹیجر کو تبدیل کرنا ہے

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

bool check(int n){
    while(n>0){
        if(n%10 == 0)
            return false;
        n/=10;
    }
    return true;
}

vector<int> getNoZeroIntegers(int n) {
    for(int i=1;i<n;i++){
        if(check(i) && check(n-i))
            return {i, n-i};
    }
    return {-1,-1};
}

int main(){
    int input = 1010;
    vector<int> output = getNoZeroIntegers(input);
    cout<<output[0]<<" "<<output[1];
}
11 999

اعدادوشمار کو دو نمبر زیرو انٹیجرز لیٹ کوڈ حل کے سمت میں بدلنے کے لئے جاوا کوڈ

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

class Main
{
  private static boolean check(int n){
        while(n>0){
            if(n%10 == 0)return false;
            n/=10;
        }
        return true;
    }
    
    public static int[] getNoZeroIntegers(int n) {
        for(int i=1;i<n;i++){
            if(check(i) && check(n-i))
                return new int[]{i, n-i};
        }
        return new int[]{-1,-1};
    }
    
  public static void main (String[] args) throws java.lang.Exception{
    int input = 1010;
      int[] output = getNoZeroIntegers(input);
      System.out.print(output[0]+" "+output[1]);
  }
}
11 999

پیچیدگی کا تجزیہ

وقت کی پیچیدگی

O (NlogN) ، جہاں N ان پٹ کے بطور دیئے جانے والا پورا عدد ہوتا ہے۔ لاگ میں 10 کی بنیاد ہوتی ہے کیونکہ ہمارا فنکشن جو یہ چیک کرتا ہے کہ انٹرنجر 0 پر مشتمل ہے یا نہیں لاگ ان ٹائم میں کام نہیں کرتا ہے۔

خلائی پیچیدگی

O (1) ، ہم کوئی معلومات ذخیرہ نہیں کرتے ہیں۔ اور پورا الگورتھم متغیرات کی مستقل تعداد میں استعمال کرتا ہے۔ اس طرح جگہ کی پیچیدگی مستقل ہے۔