جمع یو د لیټکوډ حل


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي ایڈوب ترلاسه کړئ Amazon مڼه پلازمیینه يو فیسبوک د ګوګل د Microsoft
پیشه

د ستونزې بیان

په "پلس ون" ستونزه کې موږ ته یو سرنی راکړل شو چیرې چې په صف کې هر عنصر د یوې شمیره نمایندګي کوي. بشپړ صف یو شمیره وړاندې کوي. د زیروت شاخص د MSB د. موږ کولی شو فرض کړو چې په شمیر کې مخکښ صفر شتون نلري.

زموږ دنده دا ده چې یوه ورکړل شوې شمېره جمع کړو او بیا پایله د صف په بrayه راستون کړو.

بېلګه

digits =[4,3,2,1]
[4,3,2,2]

وضاحت:

جمع یو د لیټکوډ حل

لکه څنګه چې ورکړل شوي مثال کې ، صف 4321 او 4321 + 1 4322 کیږي. نو موږ 4322 بیرته راستون شو.

د پلس ون لیټکوډ حل لپاره لاره

لومړۍ مفکوره چې د هرچا په ذهن کې راځي دا دی چې ورکړل شوي صف په یو شمیر بدل کړئ ، اضافه عملیات ترسره کړئ ، او بیا پایله د صفونو په ب returnه کې بیرته راشئ.

مګر دا مفکوره به د لوی اندازې صف لپاره ناکام شي ځکه چې دا به د هیڅ ډول ډاټا ډول کې نه راځي.

نو ، موږ اړتیا لرو چې هره یوه ګ digitه له یو څخه پروسس کړو.

  1. د LSB څخه پیل کړئ او بیا MSB پورې هر ګ processه پروسس کړئ.
  2. که اوسنی ګ digitه له than څخه کوچنۍ وي نو اوسنۍ ګ digitې ته یوه اضافه کړئ او صف ته راستون کړئ او اوسني ګ digitي ته صفر ورکړئ.
  3. که چیرې وروستی عنصر پروسس شي او دا هم د 9 سره مساوي و ، نو پدې معنی ده چې ټولې ګsې 9 وې. نو ، موږ به د یو په واسطه د صف اندازه اندازه لوړه کړو او 1 به MSB ته وګمارو.
  4. صف ته راستون کړئ

تطبیق

د پلس ون لپاره C ++ کوډ

#include <bits/stdc++.h> 
using namespace std; 
    vector<int> plusOne(vector<int>& digits) {
        int n=digits.size();
        for(int i=n-1;i>=0;i--)
        {
            if(digits[i]<9)
            {digits[i]++ ; return digits;} 
            else
                digits[i]=0;
        }
        vector<int>newnumber(n+1,0);
        newnumber[0]=1;
        return newnumber;
    }
int main() 
{ 
 vector<int> arr = {4,3,2,1}; 
  vector<int>ans= plusOne(arr); 
 for(int i=0;i<arr.size();i++)
 cout<<ans[i]<<" ";
 cout<<endl;
 return 0;
}
[4,3,2,2]

د پلس ون لپاره جاوا کوډ

import java.util.Arrays; 
public class Tutorialcup {
public static int[] plusOne(int[] digits) {
        
    int n = digits.length;
    for(int i=n-1; i>=0; i--) {
        if(digits[i] < 9) {
            digits[i]++; return digits;
        }
        digits[i] = 0;
    }
    
    int[] newNumber = new int [n+1];
    newNumber[0] = 1;
    return newNumber;
}
  public static void main(String[] args) {
        int [] arr = {4,3,2,1}; 
        int[]ans=plusOne(arr); 
        System.out.println(Arrays.toString(ans));
  }
}
[4,3,2,2]

د پلس ون لیټکوډ حل حل پیچلتیا تحلیل

د وخت پیچلتیا

د پورتنۍ کوډ وخت پیچلتیا ده اې (N) ځکه چې موږ یوازې یو ځل د ګ .و ګ .و تیر کوو. دلته n د عددي سرې اوږدوالی دی.

د ځای پیچلتیا

د پورتنۍ کوډ د ځای پیچلتیا ده O (1)  په هغه حالت کې چې صف پکې لږترلږه یو عددي د 9 څخه کوچنۍ وي ، نو په بل ډول اې (N).

ماخذونه