Dada una array arr[] de N enteros. La tarea es encontrar la suma de elementos al índice más pequeño tal que no haya elementos pares a la derecha del índice. Tenga en cuenta que la array tendrá al menos un elemento par.
Ejemplos:
Entrada: arr[] = {2, 3, 5, 6, 3, 3}
Salida: 16
2 + 3 + 5 + 6 = 16
Entrada: arr[] = {3, 4}
Salida: 7
3 + 4 = 7
Enfoque: encuentre el índice del elemento par más a la derecha de la array y devuelva la suma de todos los elementos a partir del índice 0 al índice encontrado.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the required sum int smallestIndexsum(int arr[], int n) { // Starting from the last index int i = n - 1; // Skip all odd elements and find the // index of the rightmost even element while (i >= 0 && arr[i] % 2 == 1) i--; // To store the required sum int sum = 0; for (int j = 0; j <= i; j++) sum += arr[j]; return sum; } // Driver code int main() { int arr[] = { 2, 3, 5, 6, 3, 3 }; int n = sizeof(arr) / sizeof(arr[0]); cout << smallestIndexsum(arr, n); return 0; }
Java
// Java implementation of the approach class GFG { // Function to return the required sum static int smallestIndexsum(int arr[], int n) { // Starting from the last index int i = n - 1; // Skip all odd elements and find the // index of the rightmost even element while (i >= 0 && arr[i] % 2 == 1) i--; // To store the required sum int sum = 0; for (int j = 0; j <= i; j++) sum += arr[j]; return sum; } // Driver code public static void main(String[] args) { int arr[] = { 2, 3, 5, 6, 3, 3 }; int n = arr.length; System.out.println(smallestIndexsum(arr, n)); } } // This code is contributed by 29AjayKumar
Python3
# Python3 implementation of the approach # Function to return the required sum def smallestIndexsum(arr, n): # Starting from the last index i = n - 1; # Skip all odd elements and find the # index of the rightmost even element while (i >= 0 and arr[i] % 2 == 1): i -= 1; # To store the required sum sum = 0; for j in range(0, i + 1): sum += arr[j]; return sum; # Driver code if __name__ == '__main__': arr = [ 2, 3, 5, 6, 3, 3 ]; n = len(arr); print(smallestIndexsum(arr, n)); # This code is contributed by PrinciRaj1992
C#
// C# implementation of the approach using System; class GFG { // Function to return the required sum static int smallestIndexsum(int []arr, int n) { // Starting from the last index int i = n - 1; // Skip all odd elements and find the // index of the rightmost even element while (i >= 0 && arr[i] % 2 == 1) i--; // To store the required sum int sum = 0; for (int j = 0; j <= i; j++) sum += arr[j]; return sum; } // Driver code static public void Main () { int []arr = { 2, 3, 5, 6, 3, 3 }; int n = arr.Length; Console.Write(smallestIndexsum(arr, n)); } } // This code is contributed by ajit.
Javascript
<script> // Javascript implementation of the approach // Function to return the required sum function smallestIndexsum(arr, n) { // Starting from the last index let i = n - 1; // Skip all odd elements and find the // index of the rightmost even element while (i >= 0 && arr[i] % 2 == 1) i--; // To store the required sum let sum = 0; for (let j = 0; j <= i; j++) sum += arr[j]; return sum; } let arr = [ 2, 3, 5, 6, 3, 3 ]; let n = arr.length; document.write(smallestIndexsum(arr, n)); </script>
16
Complejidad de tiempo: O(N)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Akshita207 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA