Dada una array arr[] y un número K . La tarea es encontrar el número de posiciones válidas i tal que (arr[i] + K) sea mayor que la suma de todos los elementos de la array excluyendo arr[i] .
Ejemplos:
Input: arr[] = {2, 1, 6, 7} K = 4 Output: 1 Explanation: There is only 1 valid position i.e 4th. After adding 4 to the element at 4th position it is greater than the sum of all other elements of the array. Input: arr[] = {2, 1, 5, 4} K = 2 Output: 0 Explanation: There is no valid position.
Acercarse:
- En primer lugar, encuentre la suma de todos los elementos de la array y guárdela en una variable, digamos sum .
- Ahora, recorra la array y para cada posición verifico si la condición (arr[i] + K) > (suma – arr[i]) se cumple.
- En caso afirmativo, aumente el contador y finalmente imprima el valor del contador.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement above approach #include <bits/stdc++.h> using namespace std; // Function that will find out // the valid position int validPosition(int arr[], int N, int K) { int count = 0, sum = 0; // find sum of all the elements for (int i = 0; i < N; i++) { sum += arr[i]; } // adding K to the element and check // whether it is greater than sum of // all other elements for (int i = 0; i < N; i++) { if ((arr[i] + K) > (sum - arr[i])) count++; } return count; } // Driver code int main() { int arr[] = { 2, 1, 6, 7 }, K = 4; int N = sizeof(arr) / sizeof(arr[0]); cout << validPosition(arr, N, K); return 0; }
Java
// Java implementation of the approach class GFG { // Function that will find out // the valid position static int validPosition(int arr[], int N, int K) { int count = 0, sum = 0; // find sum of all the elements for (int i = 0; i < N; i++) { sum += arr[i]; } // adding K to the element and check // whether it is greater than sum of // all other elements for (int i = 0; i < N; i++) { if ((arr[i] + K) > (sum - arr[i])) count++; } return count; } // Driver code public static void main(String[] args) { int arr[] = { 2, 1, 6, 7 }, K = 4; int N = arr.length; System.out.println(validPosition(arr, N, K)); } } /* This code contributed by PrinciRaj1992 */
Python3
# Python3 program to implement # above approach # Function that will find out # the valid position def validPosition(arr, N, K): count = 0; sum = 0; # find sum of all the elements for i in range(N): sum += arr[i]; # adding K to the element and check # whether it is greater than sum of # all other elements for i in range(N): if ((arr[i] + K) > (sum - arr[i])): count += 1; return count; # Driver code arr = [2, 1, 6, 7 ]; K = 4; N = len(arr); print(validPosition(arr, N, K)); # This code is contributed by 29AjayKumar
C#
// C# implementation of the approach using System; class GFG { // Function that will find out // the valid position static int validPosition(int []arr, int N, int K) { int count = 0, sum = 0; // find sum of all the elements for (int i = 0; i < N; i++) { sum += arr[i]; } // adding K to the element and check // whether it is greater than sum of // all other elements for (int i = 0; i < N; i++) { if ((arr[i] + K) > (sum - arr[i])) count++; } return count; } // Driver code public static void Main(String[] args) { int []arr = { 2, 1, 6, 7 };int K = 4; int N = arr.Length; Console.WriteLine(validPosition(arr, N, K)); } } // This code has been contributed by 29AjayKumar
PHP
<?php // PHP program to implement above approach // Function that will find out // the valid position function validPosition($arr, $N, $K) { $count = 0; $sum = 0; // find sum of all the elements for ($i = 0; $i < $N; $i++) { $sum += $arr[$i]; } // adding K to the element and check // whether it is greater than sum of // all other elements for ($i = 0; $i < $N; $i++) { if (($arr[$i] + $K) > ($sum - $arr[$i])) $count++; } return $count; } // Driver code $arr = array( 2, 1, 6, 7 ); $K = 4; $N = count($arr) ; echo validPosition($arr, $N, $K); // This code is contributed by AnkitRai01 ?>
Javascript
<script> // Javascript program to implement above approach // Function that will find out // the valid position function validPosition(arr, N, K) { var count = 0, sum = 0; // find sum of all the elements for (var i = 0; i < N; i++) { sum += arr[i]; } // adding K to the element and check // whether it is greater than sum of // all other elements for (var i = 0; i < N; i++) { if ((arr[i] + K) > (sum - arr[i])) count++; } return count; } // Driver code var arr = [ 2, 1, 6, 7 ], K = 4; var N = arr.length; document.write( validPosition(arr, N, K)); </script>
Producción:
1
Complejidad de Tiempo : O(N)
Espacio Auxiliar : O(1)
Publicación traducida automáticamente
Artículo escrito por Naman_Garg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA