📌  相关文章
📜  用所有其他元素的总和替换数组的每个元素

📅  最后修改于: 2022-05-13 01:57:48.659000             🧑  作者: Mango

用所有其他元素的总和替换数组的每个元素

给定一个大小为 N 的数组,任务是找到加密的数组。加密数组是通过将原始数组的每个元素替换为剩余数组元素的总和来获得的,即

例子:

Input:  arr[] = {5, 1, 3, 2, 4} 
Output: 10 14 12 13 11
Original array {5, 1, 3, 2, 4}
Encrypted array is obtained as:
= {1+3+2+4, 5+3+2+4, 5+1+2+4, 5+1+3+4, 5+1+3+2}
= {10, 14, 12, 13, 11}
Each element of original array is replaced by the 
sum of the remaining array elements.  

Input: arr[] = {6, 8, 32, 12, 14, 10, 25 }
Output: 101 99 75 95 93 97 82 

这个问题类似于 Find original array from encrypted array (An array of sum of other elements)。
方法:

  1. 求数组所有元素的总和。
  2. 遍历数组并将arr[i]替换为sum-arr[i]

C++
// C++ implementation to find encrypted array
// from the original array
#include 
using namespace std;
 
// Finds and prints the elements of the encrypted
// array
void findEncryptedArray(int arr[], int n)
{
    // total sum of elements
    // of original array
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
 
    // calculating and displaying
    // elements of encrypted array
    for (int i = 0; i < n; i++)
        cout << (sum - arr[i]) << " ";
}
 
// Driver program
int main()
{
    int arr[] = { 5, 1, 3, 2, 4 };
    int N = sizeof(arr) / sizeof(arr[0]);
    findEncryptedArray(arr, N);
    return 0;
}


Java
// Java implementation to find encrypted
// array from the original  array
 
class GFG {
    // Finds and prints the elements
    // of the encrypted array
    static void findEncryptedArray(int arr[], int n)
    {
        // total sum of elements
        // of original array
        int sum = 0;
        for (int i = 0; i < n; i++)
            sum += arr[i];
 
        // calculating and displaying
        // elements of encrypted array
        for (int i = 0; i < n; i++)
            System.out.print(sum - arr[i] + " ");
    }
 
    // Driver program
    public static void main(String[] args)
    {
        int arr[] = { 5, 1, 3, 2, 4 };
        int N = arr.length;
        findEncryptedArray(arr, N);
    }
}


Python 3
# Python 3 implementation
# to find encrypted array
# from the original array
 
# Finds and prints the elements
# of the encrypted array
def findEncryptedArray(arr, n) :
    sum = 0
 
    # total sum of elements
    # of original array
    for i in range(n) :
        sum += arr[i]
 
    # calculating and displaying
    # elements of encrypted array
    for i in range(n) :
        print(sum - arr[i], end = " ")
         
# Driver Code
if __name__ == "__main__" :
 
    arr = [ 5, 1, 3, 2, 4]
    N = len(arr)
     
    # function calling
    findEncryptedArray(arr, N)
 
# This code is contributed by ANKITRAI1


C#
// C# implementation to find
// encrypted array from the
// original array
using System;
 
class GFG
{
// Finds and prints the elements
// of the encrypted array
static void findEncryptedArray(int []arr,
                               int n)
{
    // total sum of elements
    // of original array
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
 
    // calculating and displaying
    // elements of encrypted array
    for (int i = 0; i < n; i++)
        Console.Write(sum - arr[i] + " ");
}
 
// Driver Code
public static void Main()
{
    int []arr = { 5, 1, 3, 2, 4 };
    int N = arr.Length;
    findEncryptedArray(arr, N);
}
}
 
// This code is contributed
// by inder_verma.


PHP


Javascript


输出:
10 14 12 13 11

时间复杂度: O(n)