મહત્તમ 69 નંબરનો લેટકોડ સોલ્યુશન


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે એચઆરટી
મઠ

સમસ્યા નિવેદન

આ સમસ્યામાં, આપણને 6 અથવા 9 અંકોનો બનેલો નંબર આપવામાં આવે છે. આપણે આ સંખ્યાના એક અંકને બદલી શકીએ અને આને બીજા અંકમાં બદલી શકીએ. એટલે કે આપણે 6 થી 9 ને બદલી શકીએ છીએ અથવા 9 થી 6 ને બદલી શકીએ છીએ. આપણે વધુમાં વધુ એક રિપ્લેસ દ્વારા મેળવી શકીએ તે મહત્તમ સંખ્યા આઉટપુટ કરવી પડશે.

ઉદાહરણ

num = 9669
9969

સમજૂતી:

6669 માં પ્રથમ અંકના પરિણામો બદલવાનું.
9969 માં બીજા અંકના પરિણામોમાં ફેરફાર.
એ જ રીતે 9699 માં ત્રીજા અંકના પરિણામો બદલવા.
9666 માં ચોથા અંકના પરિણામો બદલવા.
મહત્તમ સંખ્યા 9969 છે.

9996
9999

સમજૂતી:

મહત્તમ સંખ્યામાં છેલ્લા અંક 6 થી 9 પરિણામો બદલવા.

અભિગમ

જેમ આપણે સંખ્યાને મહત્તમ બનાવવા માટે કોઈ અંકોને બદલી શકીએ છીએ, એક વસ્તુ જે આપણે અહીં સમજી શકીએ છીએ તે છે કે, આપણે ફક્ત 6 થી 9 ને બદલવું જોઈએ, કારણ કે 9 થી 6 બદલો સંખ્યા ઓછી કરશે.
બીજી વસ્તુ જે આપણે અહીં સમજી શકીએ છીએ તે છે, આપણે શક્ય તેટલું ડાબી બાજુનો આંકડો બદલવો જોઈએ. ચાલો આ વસ્તુને ઉદાહરણ સાથે સમજીએ.

ધારો કે આપણી પાસે એક નંબર આપવામાં આવ્યો છે, 6666
આપણે 6 થી 9 નો અંકો બદલવો પડશે કે જે રચના કરેલી સંખ્યા મહત્તમ છે. જો આપણે 6 ની જગ્યાએ બદલીએ તો 6669 મળે છે.
જો આપણે ડાબી બાજુના replace ને બદલે, તો આપણને 6 મળે છે, જે આ નંબર પર આવા રિપ્લેસમેન્ટ દ્વારા પ્રાપ્ત કરેલી બધી સંખ્યામાં અલબત્ત મહત્તમ છે.
આમ આપણે ડાબી બાજુના replace નો સ્થાનાંતરિત કરવાનો પ્રયાસ કરીશું. અને જો કોઈ given આપેલ સંખ્યામાં દા.ત. 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 પુનરાવૃત્તિ આમ, આ પ્રશ્ન માટે આ પણ સતત સમય છે. તેમ છતાં, જો અવરોધ beંચો હશે, તો અમે સંખ્યાની લંબાઈની સમાન કદના એરેનો ઉપયોગ કરીશું. તે સમયે અમારી સમયની જટિલતા O (સંખ્યાની લંબાઈ) હશે.

અવકાશ જટિલતા 

ઓ (1): અમે કદ 4 ની વધારાની એરેનો ઉપયોગ કર્યો છે જે સતત છે. આમ જગ્યા જટિલતા ઓ (1) છે.