📜  给定数组的所有有序对乘积的总和

📅  最后修改于: 2021-05-14 07:41:32             🧑  作者: Mango

给定大小为N的数组arr [] ,任务是找到可以从给定数组元素生成的有序对的所有乘积之和。
例子:

天真的方法:最简单的方法是遍历给定数组中所有可能的对,以计算所有对乘积的乘积之和。

时间复杂度: O(N 2 )
辅助空间: O(1)

高效的方法:可以基于以下观察来优化上述方法:

请按照以下步骤解决问题:

  1. 初始化变量res = 0以存储数组元素的总和
  2. 遍历数组arr []并将数组的每个元素添加到res
  3. 最后,将res的平方打印为所需答案。

下面是上述方法的实现:

C++
// C++ program to implement
// the above approach
 
#include 
using namespace std;
 
// Function to calculate the
// sum of all pair-products
int sumOfProd(int arr[], int N)
{
    // Stores sum of array
    int sum = 0;
 
    for (int i = 0; i < N; i++) {
 
        // Update sum of the array
        sum += arr[i];
    }
 
    return sum * sum;
}
 
// Driver Code
int main()
{
    int arr[] = { 2, 3, 1, 5, 4 };
    int N = sizeof(arr) / sizeof(arr[0]);
    cout << sumOfProd(arr, N);
    return 0;
}


Java
// Java program to implement
// the above approach
import java.util.*;
 
class GFG{
 
// Function to calculate the
// sum of all pair-products
static int sumOfProd(int arr[], int N)
{
     
    // Stores sum of array
    int sum = 0;
 
    for(int i = 0; i < N; i++)
    {
         
        // Update sum of the array
        sum += arr[i];
    }
    return sum * sum;
}
 
// Driver code
public static void main(String[] args)
{
    int arr[] = { 2, 3, 1, 5, 4 };
    int N = arr.length;
     
    System.out.print(sumOfProd(arr, N));
}
}
 
// This code is contributed by offbeat


Python3
# Python3 program to implement
# the above approach 
 
# Function to calculate the
# sum of all pair-products
def sumOfProd(arr, N):
     
    # Stores sum of array
    sum = 0
 
    for i in range(N):
         
        # Update sum of the array
        sum += arr[i]
 
    return sum * sum
 
# Driver Code
if __name__ == '__main__':
     
    arr = [ 2, 3, 1, 5, 4 ]
    N = len(arr)
     
    print(sumOfProd(arr, N))
 
# This code is contributed by SURENDRA_GANGWAR


C#
// C# program to implement 
// the above approach  
using System;
 
class GFG{
     
// Function to calculate the 
// sum of all pair-products 
static int sumOfProd(int[] arr, int N) 
{ 
     
    // Stores sum of array 
    int sum = 0; 
   
    for(int i = 0; i < N; i++)
    {
         
        // Update sum of the array 
        sum += arr[i]; 
    } 
    return sum * sum; 
}  
 
// Driver code
static void Main()
{
    int[] arr = { 2, 3, 1, 5, 4 }; 
    int N = arr.Length; 
     
    Console.WriteLine(sumOfProd(arr, N));
}
}
 
// This code is contributed by divyeshrabadiya07


输出:

225

时间复杂度: O(N)

辅助空间: O(1)