Ёфтани N бутунҳои нодирро то Zero Leetcode Solution гиред


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Adobe Amazon Facebook Microsoft
тартиботи ҳарбӣ

Масъалаи ёфтани N бутунҳои беҳамто то Zero Leetcode Solution, ба мо як адади бутун медиҳад. Он аз мо хоҳиш мекунад, ки n ададҳои нодирро баргардонем, ки то 0-ро ташкил диҳанд. Ҳамин тавр, савол барои фаҳмидани он хеле содда аст. Ҳамин тавр, пеш аз он ки ба ҳалли ғарқ шавед. Биёед якчанд мисолро дида бароем.

Ёфтани N бутунҳои нодирро то Zero Leetcode Solution гиред

n = 5
[-7,-1,1,3,4]

Шарҳ: Хуб, мумкин аст натиҷаҳои гуногун барои мушкилот вуҷуд дошта бошанд. Аммо биёед натиҷаи додашударо гирем. Ҳама ададҳои натиҷа беназиранд. Ҳамин тариқ қонеъ кардани шарти гузошташуда ва ҷамъи ҳамаи ададҳои додашуда ба 0. баробар аст, аз ин рӯ, ҳарду шарт иҷро карда мешаванд.

n = 3
[-1, 0, 1]

Шарҳ: Натиҷаи додашуда ҳама ададҳои нодирро дорад ва ҳосили онҳо низ 0. аст. Ҳамин тариқ, натиҷа ҳамаи шартҳои муқарраршударо қонеъ мекунад.

Равиш барои ёфтани N бутунҳои нодир то Solution Leetcode Solution-ро ҷамъбаст мекунад

Равиши мушкилот аксар вақт шикастани намуна аст. Дар ин намуди саволҳо ҳамеша баъзе намунаҳои аслӣ мавҷуданд. Ҳамин тавр, ҳар вақте ки мо кӯшиши пайдо кардани намуна барои саволро мекунем. Ҳамеша кӯшиш кунед, ки барои арзишҳои хурдтарини n посух ёбед, пас намунаеро пайдо кунед. Барои n = 1, натиҷа метавонад 0 бошад. Барои n = 2, натиҷа метавонад [-1, 1] бошад. Ба ҳамин монанд, барои n = 3, баромади метавонад [-2, 0, 2], барои n = 4, баромади [-3, -1, 1, 3] бошад. Ҳамин тавр, мо намунаеро мебинем, ки натиҷа АП -ро ташкил медиҳад, ки агар арзиши n тоқ бошад. Элементи миёна 0. аст. Агар арзиши n баробар бошад, он гоҳ (n + 1) / 2 унсури 1. аст. Пас, бо истифода аз ин маълумот, мо формула тартиб дода метавонем. Формула метавонад [i] = 2 * i + 1-n бошад. Ҳоло, мо танҳо ин формуларо барои пур кардани n унсури асал.

Рамз барои ёфтани N бутуни нодир то Solution Leetcode Solution-ро ҷамъ кунед

Коди C ++

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

vector<int> sumZero(int n) {
    vector<int> v(n);
    for(int i=0;i<n;i++)
        v[i] = 2*i - n + 1;
    return v;
}

int main(){
    vector<int> output = sumZero(7);
    for(auto x: output)
        cout<<x<<" ";
}
-6 -4 -2 0 2 4 6

Рамзи Java

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

class Main
{
    public static int[] sumZero(int n) {
        int[] v = new int[n];
        for(int i=0;i<n;i++)
            v[i]= 2*i - n + 1;
        return v;
    }
    
    public static void main(String[] args){
    	int[] output = sumZero(7);
    	for(int i=0;i<7;i++)
    		System.out.print(output[i]+" ");
    }
}
-6 -4 -2 0 2 4 6

Таҳлили мураккабӣ

Мураккабии вақт

O (N), зеро мо массивро танҳо пур мекунем ва ҳар як элементро метавон ҳисоб кард О (1). Ҳамин тариқ, мураккабии вақт хатӣ аст.

Мураккабии фазо

O (N), зеро мо массиваеро эҷод мекунем, ки бояд ҳамчун натиҷа баргардонида шавад.