সর্বাধিক 69 নম্বর লেটকোড সমাধান


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় , HRT
ম্যাথ

সমস্যা বিবৃতি

এই সমস্যায়, আমাদের or বা 6. সংখ্যার সমন্বয়ে একটি সংখ্যা দেওয়া হয় আমরা এই সংখ্যার একটি অঙ্কের একটি প্রতিস্থাপন করতে এবং এটি অন্য অঙ্কে পরিবর্তন করতে পারি। যেমন আমরা একটি 9 থেকে 6 প্রতিস্থাপন করতে পারি বা আমরা 9 ​​থেকে 9 প্রতিস্থাপন করতে পারি আমাদের সর্বাধিক এক প্রতিস্থাপনের মাধ্যমে আমরা পেতে পারি যে সর্বোচ্চ সংখ্যাটি আউটপুট করতে হয়।

উদাহরণ

num = 9669
9969

ব্যাখ্যা:

6669 এ প্রথম অঙ্কের ফলাফল পরিবর্তন করা।
9969-এ দ্বিতীয় অঙ্কের ফলাফল পরিবর্তন করা।
একইভাবে 9699 এ তৃতীয় অঙ্কের ফলাফল পরিবর্তন করা।
9666-এ চতুর্থ অঙ্কের ফলাফল পরিবর্তন করা।
সর্বাধিক সংখ্যা 9969।

9996
9999

ব্যাখ্যা:

সর্বাধিক সংখ্যায় শেষ সংখ্যা 6 থেকে 9 ফলাফল পরিবর্তন করা।

অভিগমন

যেহেতু আমরা সংখ্যাটি সর্বাধিক করার জন্য একটি সংখ্যাকে প্রতিস্থাপন করতে পারি, একটি জিনিস আমরা এখানে বুঝতে পারি তা হ'ল, আমাদের কেবল 6 থেকে 9 প্রতিস্থাপন করা উচিত, কারণ 9 থেকে 6 প্রতিস্থাপনটি সংখ্যাটি আরও ছোট করে দেবে।
আমরা এখানে অন্য একটি জিনিস বুঝতে পারি তা হ'ল, আমাদের যতদূর সম্ভব বামতম একটি প্রতিস্থাপন করা উচিত। আসুন এই জিনিসটি একটি উদাহরণ দিয়ে বুঝতে পারি।

ধরুন আমাদের দেওয়া নম্বর আছে, 6666
আমাদের 6 থেকে 9 এর মধ্যে এমন একটি সংখ্যা প্রতিস্থাপন করতে হবে যা গঠিত সংখ্যাটি সর্বাধিক। যদি আমরা সঠিকতম 6 প্রতিস্থাপন করি তবে আমরা 6669 পাই।
যদি আমরা বামতমতম 6 প্রতিস্থাপন করি তবে আমরা 9666 পাই যা অবশ্যই এই সংখ্যায় এই ধরনের প্রতিস্থাপনের দ্বারা প্রাপ্ত সমস্ত সংখ্যার সর্বাধিক।
সুতরাং আমরা বামতমতম replace টি প্রতিস্থাপন করার চেষ্টা করব এবং যদি 6 নম্বর যদি প্রদত্ত সংখ্যায় যেমন 6 থাকে তবে আমরা কোনও প্রতিস্থাপন অপারেশন করব না।

আমরা প্রদত্ত নম্বরটিকে একটি অ্যারের আকারে ভেঙে ফেলতে পারি এবং তারপরে আমরা খুব সহজেই বাম 6 টি 9 দ্বারা প্রতিস্থাপন করতে পারি। তারপরে আমরা অ্যারে থেকে আমাদের নতুন নম্বরটি পুনরায় তৈরি করব এবং নম্বরটি আউটপুট করব।
একটি বাধা আছে যে সংখ্যাটি 4 টি সংখ্যার মধ্যে সীমাবদ্ধ। সুতরাং আমরা 4 মাপের একটি অ্যারে তৈরি করব যা সমস্ত সংখ্যার ছোট দৈর্ঘ্যের ক্ষেত্রেও সন্তুষ্ট হবে।

সুতরাং, অ্যালগরিদমটি মূলত তিনটি প্রধান অংশ নিয়ে গঠিত।
i) নম্বরকে অ্যারেতে রূপান্তর করা: আমরা> 0 সংখ্যার শর্ত সহ একটি সময় লুপ ব্যবহার করে এটি করছি। প্রতিবার, ইউনিটের স্থানে অঙ্কটি একটি অ্যারের বর্তমান সূচীতে সংরক্ষণ করা হয় এবং সংখ্যাটি 10 ​​দ্বারা বিভক্ত হয়।
ii) অ্যারেতে বামতম 6 থেকে 9 টি পরিবর্তন করা।

সর্বাধিক 69 নম্বর লেটকোড সমাধান

বামতম 6 থেকে 9 রূপান্তর করার পরে:

সর্বাধিক 69 নম্বর লেটকোড সমাধান

iii) অ্যারেটিকে সংখ্যায় রূপান্তর করা: আমরা একটি লুপ ব্যবহার করে এটি করছি।

বাস্তবায়ন

সি ++ সর্বাধিক 69 নম্বর লেটকোড সমাধানের জন্য প্রোগ্রাম

#include <iostream>
using namespace std;
int maximum69Number (int num) 
{
    int arr[4];
    fill(arr,arr+4,0);
    int i=3;
    while(num!=0){
        arr[i--]=num%10;
        num/=10;
    }
    for(i=0;i<=3;i++){
        if(arr[i]==6){arr[i]=9;break;}
    }

    int ans=0,mul=1;
    for(i=3;i>=0;i--){
        ans+=(mul*arr[i]);
        mul*=10;
    }
    return ans;

}
int main()
{
    cout << maximum69Number(9669);
}
9969

সর্বোচ্চ 69 নম্বর লেটকোড সমাধানের জন্য জাভা প্রোগ্রাম

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

class Solution
{  
    public static int maximum69Number (int num) 
    {
        int[] arr=new int[4];
        int i=3;
        while(num!=0){
            arr[i--]=num%10;
            num/=10;
        }
        for(i=0;i<=3;i++){
            if(arr[i]==6){arr[i]=9;break;}
        }
        int ans=0,mul=1;
        for(i=3;i>=0;i--){
            ans+=(mul*arr[i]);
            mul*=10;
        }
        return ans;
    }
    public static void main(String args[])
    {
        System.out.println(maximum69Number(9669));
    }
}
9969

সর্বোচ্চ 69 নম্বর লেটকোড সমাধানের জন্য জটিলতা বিশ্লেষণ

সময় জটিলতা

ও (1):  আমরা পারফর্ম করছি 3 লুপ সর্বোচ্চ 4 টি পুনরাবৃত্তির। সুতরাং, এই প্রশ্নের এই ধ্রুবক সময়। তবে, সীমাবদ্ধতা যদি উচ্চতর হয় তবে আমরা সংখ্যার দৈর্ঘ্যের সমান আকারের অ্যারে ব্যবহার করব। আমাদের সময় জটিলতা ও (সংখ্যার দৈর্ঘ্য) হবে।

স্পেস জটিলতা ity 

ও (1): আমরা 4 আকারের অতিরিক্ত অ্যারে ব্যবহার করেছি যা ধ্রুবক। সুতরাং স্থান জটিলতা হ'ল (1)।