Рубрики

Построить массив из массива парных сумм

Учитывая массив парных сумм и размер исходного массива (n), создайте исходный массив.

Массив парных сумм для массива — это массив, содержащий сумму всех пар в упорядоченном виде. Например, массив парных сумм для arr [] = {6, 8, 3, 4} равен {14, 9, 10, 11, 12, 7}.

В общем случае массив парных сумм для arr [0..n-1] имеет вид {arr [0] + arr [1], arr [0] + arr [2], ……., Arr [1] + arr [ 2], arr [1] + arr [3], ……., Arr [2] + arr [3], arr [2] + arr [4],…., Arr [n-2] + arr [n -1}.

«Учитывая массив парных сумм, создайте исходный массив».

Мы настоятельно рекомендуем свернуть ваш браузер и попробовать это самостоятельно.

Пусть заданный массив будет «pair []», и пусть в исходном массиве будет n элементов. Если мы посмотрим на несколько примеров, то увидим, что arr [0] — это половина пары [0] + пара [1] — пара [n-1]. Обратите внимание, что значение пары [0] + пара [1] — пара [n-1] равно (arr [0] + arr [1]) + (arr [0] + arr [2]) — (arr [1 ] + обр [2]).
Как только мы оценили arr [0], мы можем оценить другие элементы, вычитая arr [0]. Например, arr [1] может быть вычислено путем вычитания arr [0] из пары [0], arr [2] может быть оценено путем вычитания arr [0] из пары [1].

Ниже приводится реализация вышеуказанной идеи.

C ++

#include <iostream>

using namespace std;

  
// Заполняет элемент в arr [] из массива парных сумм pair [].
// n - это размер arr []

void constructArr(int arr[], int pair[], int n)

{

    arr[0] = (pair[0]+pair[1]-pair[n-1]) / 2;

    for (int i=1; i<n; i++)

        arr[i] = pair[i-1]-arr[0];

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    int pair[] = {15, 13, 11, 10, 12, 10, 9, 8, 7, 5};

    int n = 5;

    int arr[n];

    constructArr(arr, pair, n);

    for (int i = 0; i < n; i++)

        cout << arr[i] << " ";

    return 0;

}

Джава

import java.io.*;

  

class PairSum {

      

    // Заполняет элемент в arr [] из массива парных сумм pair [].

    // n - это размер arr []

    static void constructArr(int arr[], int pair[], int n)

    {

        arr[0] = (pair[0]+pair[1]-pair[n-1]) / 2;

        for (int i=1; i<n; i++)

            arr[i] = pair[i-1]-arr[0];

    }

      

    // Программа драйвера для проверки вышеуказанной функции

    public static void main(String[] args)

    {

        int pair[] = {15, 13, 11, 10, 12, 10, 9, 8, 7, 5};

        int n = 5;

        int[] arr = new int[n];

        constructArr(arr, pair, n);

        for (int i = 0; i < n; i++)

            System.out.print(arr[i]+" ");        

    }

}
/ * Этот код предоставлен Девешом Агравалом * /

python3

# Заполняет элемент в arr [] из его
# пара сумма массива пара [].
# n - это размер arr []

  

def constructArr(arr,pair,n):

    arr [0] = (pair[0]+pair[1]-pair[n-1])//2

    for i in range(1,n):

        arr[i] = pair[i-1]-arr[0]

  
# Код драйвера

if __name__=='__main__':

    pair = [15, 13, 11, 10, 12, 10, 9, 8, 7, 5]

    n =5

    arr = [0]*n

    constructArr(arr,pair,n)

    for i in range(n):

        print(arr[i],end =" ")

  
# Этот код предоставлен
# Shrikant13

C #

// C # программа для построения
// массив из массива парных сумм

using System;

  

class PairSum 

{

    // Заполняет элемент в arr [] из его

    // массив парных сумм pair [].

    // n - это размер arr []

    static void constructArr(int []arr, int []pair,

                                             int n)

    {

        arr[0] = (pair[0] + pair[1] - pair[n - 1]) / 2;

        for (int i = 1; i < n; i++)

            arr[i] = pair[i - 1] - arr[0];

    }

      

    // Программа драйвера для проверки вышеуказанной функции

    public static void Main()

    {

        int []pair = {15, 13, 11, 10, 12,

                         10, 9, 8, 7, 5};

        int n = 5;

        int []arr = new int[n];

        constructArr(arr, pair, n);

        for (int i = 0; i < n; i++)

            Console.Write(arr[i] + " ");     

    }

}

  
// Этот код предоставлен нитин митталь

PHP

<?php
// Заполняет элемент в arr [] из
// его пара массив парных сумм [].
// n - это размер arr []

function constructArr($pair)

{

    $arr = array();

    $n = 5;

    $arr[0] = intval(($pair[0] + $pair[1] - 

                      $pair[$n - 1]) / 2);

    for ($i = 1; $i < $n; $i++)

        $arr[$i] = $pair[$i - 1] - $arr[0];

          

    for ($i = 0; $i < $n; $i++)

        echo $arr[$i] . " "

}

  
// Код драйвера

$pair = array(15, 13, 11, 10, 

              12, 10, 9, 8, 7, 5);

constructArr($pair);

  
// Этот код предоставлен Sam007
?>


Выход :

 8 7 5 3 2 

Временная сложность constructArr () равна O (n), где n — количество элементов в arr [].

Эта статья предоставлена Abhishek. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Построить массив из массива парных сумм

0.00 (0%) 0 votes