Recuento de pares adyacentes en una array dada con suma par

Dada una array arr[] de N enteros, la tarea es encontrar el número de pares de elementos adyacentes cuya suma es par donde cada elemento puede pertenecer a un par como máximo.

Ejemplo:

Entrada: arr[] = {1, 12, 1, 3, 5}
Salida:  1
Explicación: Se puede formar 1 par con arr[3] y arr[4].

Entrada: arr[] = {1, 2, 3, 4, 5, 6, 8, 9}
Salida: 0

 

Enfoque: el problema dado se puede resolver utilizando un enfoque codicioso . Se puede observar que los pares requeridos pueden estar formados por los elementos que tienen la misma paridad solamente, es decir, ya sea (impar, impar) o (par, par). Además, el número de pares que se pueden formar a partir de X pares o impares consecutivos es piso (X/2) . Por lo tanto, recorra la array dada y calcule todos los conjuntos posibles de enteros consecutivos y agregue (X / 2) para cada conjunto en la respuesta.

A continuación se muestra la implementación del enfoque anterior:

C++

// c++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// function to find maximum count of pairs of adjacent
// elements with even sum in the given array
int find_maximum_pairs(vector<int>& arr)
{
   
    // total number of pairs is initially 0
    int totalPairs = 0;
    for (int i = 0; i < arr.size() - 1; i++)
    {
       
        // If current pair is even-even or odd-odd
        if ((arr[i] + arr[i + 1]) % 2 == 0) {
            totalPairs++;
            i++;
        }
    }
 
    // return answer
    return totalPairs;
}
 
// Driver Code
int main()
{
    vector<int> arr = { 1, 12, 1, 3, 5 };
    cout << find_maximum_pairs(arr) << endl;
}

Java

// Java program for the above approach
import java.io.*;
 
class GFG {
    // Function to find maximum count of
    // pairs of adjacent elements with even
    // sum in the given array
    public static int findMaximumPairs(int[] arr)
    {
 
        // Total number of pairs is initially 0
        int totalPairs = 0;
        for (int i = 0; i < arr.length - 1;
             i++) {
 
            // If current pair is even-even
            // or odd-odd
            if ((arr[i] + arr[i + 1]) % 2 == 0) {
                totalPairs++;
                i++;
            }
        }
 
        // Return Answer
        return totalPairs;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int arr[] = { 1, 12, 1, 3, 5 };
        System.out.println(
            findMaximumPairs(arr));
    }
}

Python3

# Python program for the above approach
 
# function to find maximum count of pairs of adjacent
# elements with even sum in the given array
def find_maximum_pairs(arr):
     
    # total number of pairs is initially 0
    totalPairs = 0
    i = 0
    while i < (len(arr)-1):
         
        # If current pair is even-even or odd-odd
        if ((arr[i] + arr[i + 1]) % 2 == 0):
            totalPairs += 1
            i += 1
        i += 1
             
    # return answer
    return totalPairs
 
# Driver Code
arr = [1, 12, 1, 3, 5]
print(find_maximum_pairs(arr))
     
# This code is contributed by Shubham Singh

C#

// C# program for the above approach
using System;
class GFG
{
   
  // Function to find maximum count of
  // pairs of adjacent elements with even
  // sum in the given array
  public static int findMaximumPairs(int[] arr)
  {
 
    // Total number of pairs is initially 0
    int totalPairs = 0;
    for (int i = 0; i < arr.Length - 1;
         i++) {
 
      // If current pair is even-even
      // or odd-odd
      if ((arr[i] + arr[i + 1]) % 2 == 0) {
        totalPairs++;
        i++;
      }
    }
 
    // Return Answer
    return totalPairs;
  }
 
  // Driver Code
  public static void Main()
  {
    int[] arr = { 1, 12, 1, 3, 5 };
    Console.Write(findMaximumPairs(arr));
  }
}
 
// This code is contributed by gfgking.

Javascript

<script>
        // JavaScript code for the above approach
 
        // Function to find maximum count of
        // pairs of adjacent elements with even
        // sum in the given array
        function findMaximumPairs(arr) {
 
            // Total number of pairs is initially 0
            let totalPairs = 0;
            for (let i = 0; i < arr.length - 1;
                i++) {
 
                // If current pair is even-even
                // or odd-odd
                if ((arr[i] + arr[i + 1]) % 2 == 0) {
                    totalPairs++;
                    i++;
                }
            }
 
            // Return Answer
            return totalPairs;
        }
 
        // Driver Code
        let arr = [1, 12, 1, 3, 5];
        document.write(
            findMaximumPairs(arr));
 
  // This code is contributed by Potta Lokesh
    </script>
Producción

1

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por Code_r 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 *