Encuentra todos los tripletes con suma cero

Dada una serie de elementos distintos. La tarea es encontrar tripletas en la array cuya suma sea cero.

Ejemplos: 

C++

// A simple C++ program to find three elements
// whose sum is equal to zero
#include <bits/stdc++.h>
using namespace std;
  
// Prints all triplets in arr[] with 0 sum
void findTriplets(int arr[], int n)
{
    bool found = false;
    for (int i = 0; i < n - 2; i++) {
        for (int j = i + 1; j < n - 1; j++) {
            for (int k = j + 1; k < n; k++) {
                if (arr[i] + arr[j] + arr[k] == 0) {
                    cout << arr[i] << " " << arr[j] << " "
                         << arr[k] << endl;
                    found = true;
                }
            }
        }
    }
  
    // If no triplet with 0 sum found in array
    if (found == false)
        cout << " not exist " << endl;
}
  
// Driver code
int main()
{
    int arr[] = { 0, -1, 2, -3, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
    findTriplets(arr, n);
    return 0;
}
  
// This code is contributed by Aditya Kumar (adityakumar129)

C

// A simple C program to find three elements
// whose sum is equal to zero
#include <stdbool.h>
#include <stdio.h>
  
// Prints all triplets in arr[] with 0 sum
void findTriplets(int arr[], int n)
{
    bool found = false;
    for (int i = 0; i < n - 2; i++) {
        for (int j = i + 1; j < n - 1; j++) {
            for (int k = j + 1; k < n; k++) {
                if (arr[i] + arr[j] + arr[k] == 0) {
                    printf("%d %d %d\n", arr[i], arr[j],arr[k]);
                    found = true;
                }
            }
        }
    }
  
    // If no triplet with 0 sum found in array
    if (found == false)
        printf(" not exist \n");
}
  
// Driver code
int main()
{
    int arr[] = { 0, -1, 2, -3, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
    findTriplets(arr, n);
    return 0;
}
  
// This code is contributed by Aditya Kumar (adityakumar129)

Java

// A simple Java program to find three elements
// whose sum is equal to zero
class num {
    // Prints all triplets in arr[] with 0 sum
    static void findTriplets(int[] arr, int n)
    {
        boolean found = false;
        for (int i = 0; i < n - 2; i++) {
            for (int j = i + 1; j < n - 1; j++) {
                for (int k = j + 1; k < n; k++) {
                    if (arr[i] + arr[j] + arr[k] == 0) {
                        System.out.println(arr[i] + " " + arr[j] + " " + arr[k]);
                        found = true;
                    }
                }
            }
        }
  
        // If no triplet with 0 sum found in array
        if (found == false)
            System.out.println(" not exist ");
    }
  
    // Driver code
    public static void main(String[] args)
    {
        int arr[] = { 0, -1, 2, -3, 1 };
        int n = arr.length;
        findTriplets(arr, n);
    }
}
  
// This code is contributed by Aditya Kumar (adityakumar129)

Python3

# A simple Python 3 program 
# to find three elements whose 
# sum is equal to zero
  
# Prints all triplets in 
# arr[] with 0 sum
def findTriplets(arr, n):
  
    found = False
    for i in range(0, n-2):
      
        for j in range(i+1, n-1):
          
            for k in range(j+1, n):
              
                if (arr[i] + arr[j] + arr[k] == 0):
                    print(arr[i], arr[j], arr[k])
                    found = True
      
              
    # If no triplet with 0 sum 
    # found in array
    if (found == False):
        print(" not exist ")
  
# Driver code
arr = [0, -1, 2, -3, 1]
n = len(arr)
findTriplets(arr, n)
  
# This code is contributed by Smitha Dinesh Semwal    

C#

// A simple C# program to find three elements 
// whose sum is equal to zero
using System;
  
class GFG {
      
    // Prints all triplets in arr[] with 0 sum
    static void findTriplets(int []arr, int n)
    {
        bool found = false;
        for (int i = 0; i < n-2; i++)
        {
            for (int j = i+1; j < n-1; j++)
            {
                for (int k = j+1; k < n; k++)
                {
                    if (arr[i] + arr[j] + arr[k]
                                           == 0)
                    {
                        Console.Write(arr[i]);
                        Console.Write(" ");
                        Console.Write(arr[j]);
                        Console.Write(" ");
                        Console.Write(arr[k]);
                        Console.Write("\n");
                        found = true;
                    }
                }
            }
        }
      
        // If no triplet with 0 sum found in 
        // array
        if (found == false)
            Console.Write(" not exist ");
    }
      
    // Driver code
    public static void Main()
    {
        int []arr = {0, -1, 2, -3, 1};
        int n = arr.Length;
        findTriplets(arr, n);
    }
}
  
// This code is contributed by nitin mittal.

PHP

<?php
// A simple PHP program to 
// find three elements whose 
// sum is equal to zero
  
// Prints all triplets
// in arr[] with 0 sum
function findTriplets($arr, $n)
{
    $found = false;
    for ($i = 0; $i < $n - 2; $i++)
    {
        for ($j = $i + 1; $j < $n - 1; $j++)
        {
            for ($k = $j + 1; $k < $n; $k++)
            {
                if ($arr[$i] + $arr[$j] + 
                               $arr[$k] == 0)
                {
                    echo $arr[$i] , " ",
                         $arr[$j] , " ",
                         $arr[$k] ,"\n";
                    $found = true;
                }
            }
        }
    }
  
    // If no triplet with 0
    // sum found in array
    if ($found == false)
        echo " not exist ", "\n";
  
}
  
// Driver Code
$arr = array (0, -1, 2, -3, 1);
$n = sizeof($arr);
findTriplets($arr, $n);
  
// This code is contributed by m_kit
?>

Javascript

<script>
// A simple Javascript program to find
//three elements whose sum is equal to zero
    arr = [0, -1, 2, -3, 1];
      
// Prints all triplets in arr[] with 0 sum    
    function findTriplets(arr) {
        let found = false;
        for (let i = 0; i < arr.length - 2; i++) {
        for (let j = i + 1; j < arr.length - 1; j++) {
            for (let k = j + 1; k < arr.length; k++) {
                if (arr[i] + arr[j] + arr[k] === 0)
                {
                    document.write(arr[i]);
                    document.write(" ");
                    document.write(arr[j]);
                    document.write(" ");
                    document.write(arr[k]);
                    document.write("<br>");
                    found = true;
                     
                }
            }
        }
        // If no triplet with 0 sum found in array
        if(found === false) {
            document.write(" not exist ");
        }
    }
   }
    findTriplets(arr);
// This code is contributed by Surbhi Tyagi
</script>

C++

// C++ program to find triplets in a given
// array whose sum is zero
#include<bits/stdc++.h>
using namespace std;
  
// function to print triplets with 0 sum
void findTriplets(int arr[], int n)
{
    bool found = false;
  
    for (int i=0; i<n-1; i++)
    {
        // Find all pairs with sum equals to
        // "-arr[i]"
        unordered_set<int> s;
        for (int j=i+1; j<n; j++)
        {
            int x = -(arr[i] + arr[j]);
            if (s.find(x) != s.end())
            {
                printf("%d %d %d\n", x, arr[i], arr[j]);
                found = true;
            }
            else
                s.insert(arr[j]);
        }
    }
  
    if (found == false)
        cout << " No Triplet Found" << endl;
}
  
// Driver code
int main()
{
    int arr[] = {0, -1, 2, -3, 1};
    int n = sizeof(arr)/sizeof(arr[0]);
    findTriplets(arr, n);
    return 0;
}

Java

// Java program to find triplets in a given
// array whose sum is zero
import java.util.*;
  
class GFG 
{
  
    // function to print triplets with 0 sum
    static void findTriplets(int arr[], int n) 
    {
        boolean found = false;
  
        for (int i = 0; i < n - 1; i++) 
        {
            // Find all pairs with sum equals to
            // "-arr[i]"
            HashSet<Integer> s = new HashSet<Integer>();
            for (int j = i + 1; j < n; j++) 
            {
                int x = -(arr[i] + arr[j]);
                if (s.contains(x)) 
                {
                    System.out.printf("%d %d %d\n", x, arr[i], arr[j]);
                    found = true;
                } 
                else 
                {
                    s.add(arr[j]);
                }
            }
        }
  
        if (found == false)
        {
            System.out.printf(" No Triplet Found\n");
        }
    }
  
    // Driver code
    public static void main(String[] args) 
    {
        int arr[] = {0, -1, 2, -3, 1};
        int n = arr.length;
        findTriplets(arr, n);
    }
}
  
// This code contributed by Rajput-Ji

Python3

# Python3 program to find triplets 
# in a given array whose sum is zero 
  
# function to print triplets with 0 sum 
def findTriplets(arr, n):
    found = False
    for i in range(n - 1):
  
        # Find all pairs with sum 
        # equals to "-arr[i]" 
        s = set()
        for j in range(i + 1, n):
            x = -(arr[i] + arr[j])
            if x in s:
                print(x, arr[i], arr[j])
                found = True
            else:
                s.add(arr[j])
    if found == False:
        print("No Triplet Found")
  
# Driver Code
arr = [0, -1, 2, -3, 1]
n = len(arr)
findTriplets(arr, n)
  
# This code is contributed by Shrikant13

C#

// C# program to find triplets in a given
// array whose sum is zero
using System;
using System.Collections.Generic;
  
class GFG 
{
  
    // function to print triplets with 0 sum
    static void findTriplets(int []arr, int n) 
    {
        bool found = false;
  
        for (int i = 0; i < n - 1; i++) 
        {
            // Find all pairs with sum equals to
            // "-arr[i]"
            HashSet<int> s = new HashSet<int>();
            for (int j = i + 1; j < n; j++) 
            {
                int x = -(arr[i] + arr[j]);
                if (s.Contains(x)) 
                {
                    Console.Write("{0} {1} {2}\n", x, arr[i], arr[j]);
                    found = true;
                } 
                else
                {
                    s.Add(arr[j]);
                }
            }
        }
  
        if (found == false)
        {
            Console.Write(" No Triplet Found\n");
        }
    }
  
    // Driver code
    public static void Main(String[] args) 
    {
        int []arr = {0, -1, 2, -3, 1};
        int n = arr.Length;
        findTriplets(arr, n);
    }
}
  
// This code has been contributed by 29AjayKumar

Javascript

<script>
   
// Javascript program to find triplets in a given
// array whose sum is zero
  
// function to print triplets with 0 sum
function findTriplets(arr, n)
{
    var found = false;
  
    for (var i = 0; i < n - 1; i++)
    {
        // Find all pairs with sum equals to
        // "-arr[i]"
        var s = new Set();
        for (var j = i + 1; j < n; j++)
        {
            var x = -(arr[i] + arr[j]);
            if (s.has(x))
            {
                document.write( x + " " + arr[i] + " " + arr[j] + "<br>");
                found = true;
            }
            else
                s.add(arr[j]);
        }
    }
  
    if (found == false)
        document.write( " No Triplet Found" );
}
  
// Driver code
var arr = [0, -1, 2, -3, 1];
var n = arr.length;
findTriplets(arr, n);
  
// This code is contributed by famously.
</script>

C++

// C++ program to find triplets in a given
// array whose sum is zero
#include<bits/stdc++.h>
using namespace std;
  
// function to print triplets with 0 sum
void findTriplets(int arr[], int n)
{
    bool found = false;
  
    // sort array elements
    sort(arr, arr+n);
  
    for (int i=0; i<n-1; i++)
    {
        // initialize left and right
        int l = i + 1;
        int r = n - 1;
        int x = arr[i];
        while (l < r)
        {
            if (x + arr[l] + arr[r] == 0)
            {
                // print elements if it's sum is zero
                printf("%d %d %d\n", x, arr[l], arr[r]);
                l++;
                r--;
               // found = true;
               //   break;
            }
  
            // If sum of three elements is less
            // than zero then increment in left
            else if (x + arr[l] + arr[r] < 0)
                l++;
  
            // if sum is greater than zero then
            // decrement in right side
            else
                r--;
        }
    }
  
    if (found == false)
        cout << " No Triplet Found" << endl;
}
  
// Driven source
int main()
{
    int arr[] = {0, -1, 2, -3, 1};
    int n = sizeof(arr)/sizeof(arr[0]);
    findTriplets(arr, n);
    return 0;
}

Java

// Java  program to find triplets in a given
// array whose sum is zero
import java.util.Arrays; 
import java.io.*;
  
class GFG {
    // function to print triplets with 0 sum
static void findTriplets(int arr[], int n)
{
    boolean found = false;
  
    // sort array elements
    Arrays.sort(arr);
  
    for (int i=0; i<n-1; i++)
    {
        // initialize left and right
        int l = i + 1;
        int r = n - 1;
        int x = arr[i];
        while (l < r)
        {
            if (x + arr[l] + arr[r] == 0)
            {
                // print elements if it's sum is zero
                    System.out.print(x + " ");
                    System.out.print(arr[l]+ " ");
                    System.out.println(arr[r]+ " ");
      
                l++;
                r--;
                found = true;
            }
  
            // If sum of three elements is less
            // than zero then increment in left
            else if (x + arr[l] + arr[r] < 0)
                l++;
  
            // if sum is greater than zero then
            // decrement in right side
            else
                r--;
        }
    }
  
    if (found == false)
            System.out.println(" No Triplet Found");
}
  
// Driven source
    public static void main (String[] args) {
  
    int arr[] = {0, -1, 2, -3, 1};
    int n =arr.length;
    findTriplets(arr, n);
    }
//This code is contributed by Tushil..    
}

Python3

# python program to find triplets in a given
# array whose sum is zero
  
# function to print triplets with 0 sum
def findTriplets(arr, n):
  
    found = False
  
    # sort array elements
    arr.sort()
  
    for i in range(0, n-1):
      
        # initialize left and right
        l = i + 1
        r = n - 1
        x = arr[i]
        while (l < r):
          
            if (x + arr[l] + arr[r] == 0):
                # print elements if it's sum is zero
                print(x, arr[l], arr[r])
                l+=1
                r-=1
                found = True
              
  
            # If sum of three elements is less
            # than zero then increment in left
            elif (x + arr[l] + arr[r] < 0):
                l+=1
  
            # if sum is greater than zero then
            # decrement in right side
            else:
                r-=1
          
    if (found == False):
        print(" No Triplet Found")
  
  
# Driven source
arr = [0, -1, 2, -3, 1]
n = len(arr)
findTriplets(arr, n)
  
# This code is contributed by Smitha Dinesh Semwal

C#

// C#  program to find triplets in a given
// array whose sum is zero
using System;
  
public class GFG{
        // function to print triplets with 0 sum
static void findTriplets(int []arr, int n)
{
    bool found = false;
  
    // sort array elements
    Array.Sort(arr);
  
    for (int i=0; i<n-1; i++)
    {
        // initialize left and right
        int l = i + 1;
        int r = n - 1;
        int x = arr[i];
        while (l < r)
        {
            if (x + arr[l] + arr[r] == 0)
            {
                // print elements if it's sum is zero
                    Console.Write(x + " ");
                    Console.Write(arr[l]+ " ");
                    Console.WriteLine(arr[r]+ " ");
      
                l++;
                r--;
                found = true;
            }
  
            // If sum of three elements is less
            // than zero then increment in left
            else if (x + arr[l] + arr[r] < 0)
                l++;
  
            // if sum is greater than zero then
            // decrement in right side
            else
                r--;
        }
    }
  
    if (found == false)
            Console.WriteLine(" No Triplet Found");
}
  
// Driven source
    static public void Main (){
          
    int []arr = {0, -1, 2, -3, 1};
    int n =arr.Length;
    findTriplets(arr, n);
    }
//This code is contributed by akt_mit.. 
}

PHP

<?php
// PHP program to find 
// triplets in a given
// array whose sum is zero
  
// function to print 
// triplets with 0 sum
function findTriplets($arr, $n)
{
    $found = false;
  
    // sort array elements
    sort($arr);
  
    for ($i = 0; $i < $n - 1; $i++)
    {
        // initialize left
        // and right
        $l = $i + 1;
        $r = $n - 1;
        $x = $arr[$i];
        while ($l < $r)
        {
            if ($x + $arr[$l] + 
                     $arr[$r] == 0)
            {
                // print elements if 
                // it's sum is zero
                echo $x," ", $arr[$l],
                        " ", $arr[$r], "\n";
                $l++;
                $r--;
                $found = true;
            }
  
            // If sum of three elements 
            // is less than zero then 
            // increment in left
            else if ($x + $arr[$l] + 
                          $arr[$r] < 0)
                $l++;
  
            // if sum is greater than 
            // zero then decrement
            // in right side
            else
                $r--;
        }
    }
  
    if ($found == false)
        echo " No Triplet Found" ,"\n";
}
  
// Driver Code
$arr = array (0, -1, 2, -3, 1);
$n = sizeof($arr);
findTriplets($arr, $n);
  
// This code is contributed by ajit
?>

Javascript

<script>
  
// Javascript program to find triplets in a given
// array whose sum is zero
  
// function to print triplets with 0 sum
function findTriplets(arr, n)
{
    let found = false;
  
    // sort array elements
    arr.sort((a, b) => a - b);
  
    for (let i=0; i<n-1; i++)
    {
        // initialize left and right
        let l = i + 1;
        let r = n - 1;
        let x = arr[i];
        while (l < r)
        {
            if (x + arr[l] + arr[r] == 0)
            {
                // print elements if it's sum is zero
                document.write(x + " ");
                document.write(arr[l]+ " ");
                document.write(arr[r]+ " " + "<br>");
                l++;
                r--;
                found = true;
            }
  
            // If sum of three elements is less
            // than zero then increment in left
            else if (x + arr[l] + arr[r] < 0)
                l++;
  
            // if sum is greater than zero then
            // decrement in right side
            else
                r--;
        }
    }
  
    if (found == false)
        document.write(" No Triplet Found" + "<br>");
}
  
// Driven source
  
    let arr = [0, -1, 2, -3, 1];
    let n = arr.length;
    findTriplets(arr, n);
  
  
// This code is contributed by Mayank Tyagi
  
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *