आधार Le लीटकोड समाधान


कठिनाई तह सजिलो
बारम्बार सोधिन्छ ब्लूमबर्ग Garena
गणित

समस्या बेस Le लीटकोड समाधान, हामीलाई नम्बरलाई आधार number नम्बरमा रूपान्तरण गर्न अनुरोध गर्दछ। दिइएको संख्या १० लाखसम्म नकारात्मक वा सकारात्मक हुन सक्छ, नम्बर लाइनमा दुबै दिशामा। समस्या सरल देखिन्छ र एक दशमलव नम्बर को एक अलग आधार मा साधारण रूपान्तरण हो। बाइनरी ढाँचामा नम्बरको रूपान्तरण जस्तै। बेस २ हुनुको सट्टा, आधार 7. हो। फिर्ती मान स्ट्रि be् हुनुपर्दछ। केही उदाहरणहरूमा एक नजर राख्दछौं।

उदाहरणका

100
"202"

स्पष्टीकरण: २०२२ आधार in मा रूपान्तरण पछि दशमलव ढाँचामा १०० दिन्छ। २०२ आधार 202 = २ * (^ ^ २) + ० * (^ ^ १) + २ * (^ ^ ०) = १०० आधार in मा।

आधार Le लीटकोड समाधान

-7
"-10"

स्पष्टीकरण: दिइएको संख्या -7 आधार into मा रूपान्तरण गरे पछि -१० दिनेछ।

बेस Le लीटकोड समाधानको लागि दृष्टिकोण

समस्या बेस Le लीटकोड समाधान, हामीलाई नम्बर वा प्रदान गर्दछ पूर्णांक र हामीलाई यो बेस into मा रूपान्तरण गर्न सोध्छ। मात्र आधार 7 मा रूपान्तरण एक साधारण अपरेशन हो। हामी दिईएको संख्यालाई हाम्रो आवश्यक आधारको साथ विभाजन गर्न जारी राख्छौं। नम्बर विभाजन पछि, बाँकी भण्डारण हुन्छ। तब संख्या विभाजन पछि फेला परेको नतिजा फेरी दोहोरिएको विभाजनको लागि पठाइन्छ। हामी शेष भण्डार गर्न जारी राख्छौं जुन प्रश्नको उत्तर हो। दोहोर्याइएको प्रक्रिया एक पटक दिइएको संख्या भन्दा कम भयो भने रोकिन्छ।

त्यसो भए, १०० इनपुटको रूपमा विचार गरौं। पहिले हामी संख्यालाई by ले भाग गर्छौं, भागफल १ is हो, र बाँकी २ हुन्छ। त्यसपछि शेष भण्डार गरिन्छ र भागफल फेरि डिभिजनका लागि पठाइन्छ। अब, भागफल २ हुन्छ, र बाँकी भण्डार गरिएको छ। अहिले सम्म, रूपान्तरण संख्या २० हुन्छ। त्यसपछि भागफल फेरि डिभिजनका लागि पठाइन्छ तर फिर्ता हुन्छ किनभने यो दिइएको आधार ()) भन्दा कम हो। यसैले अन्तिम परिणाम २०२ लाई बाहिर आउँछ।

कोड

C ++ कोड आधार Le Leetcode समाधानका लागि

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

string convertToBase7(int num) {
    if(num < 0)return "-" + convertToBase7(-num);
    else if(num < 7) return to_string(num);
    else
        return convertToBase7(num/7) + convertToBase7(num%7);
}

int main(){
    cout<<convertToBase7(100);
}
202

बेस Le लीटकोड समाधानको लागि जाभा कोड

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

class Solution {
    public static String convertToBase7(int num) {
        if(num < 0)return "-" + convertToBase7(-num);
        else if(num < 7) return Integer.toString(num);
        else
            return convertToBase7(num/7) + convertToBase7(num%7);
    }
    
    public static void main(String[] args){
    	System.out.print(convertToBase7(100));
    }
}
202

जटिलता विश्लेषण

समय जटिलता

O (M (n) log n), जहाँ n दिइएको इनपुटको लम्बाई हो, M (n) समय हो यो दुई २-बिट संख्याहरू विभाजन गर्न लिन्छ। त्यसो भए, समय जटिलता लघुगणक हो।

ठाउँ जटिलता

O (लग एन), कम्पाइलर स्ट्याकले प्रयोग गरेको खाली ठाउँ। यहाँ n ले संख्याको लम्बाई प्रतिनिधित्व गर्दछ। त्यसो भए, स्पेस जटिलता पनि लगारिथमिक हो।