Dada una array A[] y el tamaño de una array es N. La tarea es eliminar los elementos de la array A[] que están en el rango L a R dado, ambos son exclusivos.
Ejemplos:
Input : N = 12 A[] = { 3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3} L = 2 R = 7 Output : 3 5 3 6 3 11 12 3 since A[2] = 3 but this is exclude A[7] = 6 this also exclude Input : N = 10 A[] ={ 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 } L = 4 R = 6 Output :5 8 11 15 26 19 17 10 14
Un enfoque ingenuo es eliminar elementos en el rango L a R con espacio adicional.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to delete element // in given range #include <bits/stdc++.h> using namespace std; // Delete L to R element vector<int> deleteElement(int A[], int L, int R, int N) { vector<int> B; for (int i = 0; i < N; i++) if (i <= L || i >= R) B.push_back(A[i]); return B; } // main Driver int main() { int A[] = { 3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3 }; int L = 2, R = 7; int n = sizeof(A) / sizeof(A[0]); vector<int> res = deleteElement(A, L, R, n); for (auto x : res) cout << x << " "; return 0; }
Java
import java.util.Vector; // Java code to delete element // in given range class GFG { // Delete L to R element static Vector<Integer> deleteElement(int A[], int L, int R, int N) { Vector<Integer> B = new Vector<>(); for (int i = 0; i < N; i++) { if (i <= L || i >= R) { B.add(A[i]); } } return B; } // main Driver public static void main(String[] args) { int A[] = {3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3}; int L = 2, R = 7; int n = A.length; Vector<Integer> res = deleteElement(A, L, R, n); for (Integer x : res) { System.out.print(x + " "); } } } // This code is contributed by PrinciRaj1992
Python3
# Python 3 code to delete element # in given range # Delete L to R element def deleteElement(A, L, R, N): B = [] for i in range(0, N, 1): if (i <= L or i >= R): B.append(A[i]) return B # Driver Code if __name__ == '__main__': A = [3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3] L = 2 R = 7 n = len(A) res = deleteElement(A, L, R, n) for i in range(len(res)): print(res[i], end = " ") # THis code is implemented by # Surendra_Gangwar
C#
// C# code to delete element // in given range using System; using System.Collections.Generic; class GFG { // Delete L to R element static List<int> deleteElement(int []A, int L, int R, int N) { List<int> B = new List<int>(); for (int i = 0; i < N; i++) { if (i <= L || i >= R) { B.Add(A[i]); } } return B; } // Driver code public static void Main() { int []A = {3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3}; int L = 2, R = 7; int n = A.Length; List<int> res = deleteElement(A, L, R, n); foreach (int x in res) { Console.Write(x + " "); } } } // This code is contributed by Rajput-Ji
PHP
<?php // PHP code to delete element // in given range // Delete L to R element function deleteElement($A, $L, $R, $N) { $B = array(); for ($i = 0; $i < $N; $i++) { if ($i <= $L or $i >= $R) $B[] = $A[$i]; } return $B; } // Driver Code $A = array(3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3); $L = 2; $R = 7; $n = count($A); $res = deleteElement($A, $L, $R, $n); for ($i = 0; $i < count($res); $i++) echo "$res[$i] "; // This code is implemented by // Srathore ?>
Javascript
<script> // Javascript code to delete element in given range function deleteElement(A, L, R, N) { let B = []; for (let i = 0; i < N; i++) { if (i <= L || i >= R) { B.push(A[i]); } } return B; } let A = [3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3]; let L = 2, R = 7; let n = A.length; let res = deleteElement(A, L, R, n); for(let i = 0; i < res.length; i++) document.write(res[i] + " "); // This code is contributed by divyeshrabadiya07. </script>
Producción:
3 5 3 6 3 11 12 3
Complejidad de Tiempo: O(n)
Espacio Auxiliar: O(n)
Una solución eficiente sin usar espacio extra.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to delete element // in given range #include <bits/stdc++.h> using namespace std; // Delete L to R elements int deleteElement(int A[], int L, int R, int N) { int i, j = 0; for (i = 0; i < N; i++) { if (i <= L || i >= R) { A[j] = A[i]; j++; } } // Return size of Array // after delete element return j; } // main Driver int main() { int A[] = { 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 }; int L = 2, R = 7; int n = sizeof(A) / sizeof(A[0]); int res_size = deleteElement(A, L, R, n); for (int i = 0; i < res_size; i++) cout << A[i] << " "; return 0; }
Java
// Java code to delete element // in given range class GFG { // Delete L to R elements static int deleteElement(int A[], int L, int R, int N) { int i, j = 0; for (i = 0; i < N; i++) { if (i <= L || i >= R) { A[j] = A[i]; j++; } } // Return size of Array // after delete element return j; } // Driver Code public static void main(String args[]) { int A[] = new int[] { 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 }; int L = 2, R = 7; int n = A.length; int res_size = deleteElement(A, L, R, n); for (int i = 0; i < res_size; i++) System.out.print(A[i] + " "); } } // This code is contributed // by Kirti_Mangal
Python 3
# Python 3 program to delete element # in given range # Function to delete L to R element def deleteElement(A, L, R, N) : j = 0 for i in range(N) : if i <= L or i >= R : A[j] = A[i] j += 1 # Return size of Array # after delete element return j # Driver Code if __name__ == "__main__" : A = [5, 8, 11, 15, 26, 14, 19, 17, 10, 14] L, R = 2,7 n = len(A) res_size = deleteElement(A, L, R, n) for i in range(res_size) : print(A[i],end = " ") # This code is contributed by ANKITRAI1
C#
// C# code to delete element // in given range using System; class GFG { // Delete L to R elements static int deleteElement(int []A, int L, int R, int N) { int i, j = 0; for (i = 0; i < N; i++) { if (i <= L || i >= R) { A[j] = A[i]; j++; } } // Return size of Array // after delete element return j; } // Driver Code public static void Main() { int []A = new int[] { 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 }; int L = 2, R = 7; int n = A.Length; int res_size = deleteElement(A, L, R, n); for (int i = 0; i < res_size; i++) Console.Write(A[i] + " "); } } // This code is contributed by 29AjayKumar
PHP
<?php // PHP code to delete element // in given range // Delete L to R elements function deleteElement(&$A, $L, $R, $N) { $i= 0; $j = 0; for ($i = 0; $i < $N; $i++) { if ($i <= $L || $i >= $R) { $A[$j] = $A[$i]; $j++; } } // Return size of Array // after delete element return $j; } // Driver Code $A = array(5, 8, 11, 15, 26, 14, 19, 17, 10, 14); $L = 2; $R = 7; $n = sizeof($A); $res_size = deleteElement($A, $L, $R, $n); for ($i = 0; $i < $res_size; $i++) { echo ($A[$i]); echo (" "); } // This code is contributed // by Shivi_Aggarwal ?>
Javascript
<script> // JavaScript code to delete element in given range // Delete L to R elements function deleteElement(A, L, R, N) { let i, j = 0; for (i = 0; i < N; i++) { if (i <= L || i >= R) { A[j] = A[i]; j++; } } // Return size of Array // after delete element return j; } let A = [ 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 ]; let L = 2, R = 7; let n = A.length; let res_size = deleteElement(A, L, R, n); for (let i = 0; i < res_size; i++) document.write(A[i] + " "); </script>
Producción:
5 8 11 17 10 14
Complejidad temporal: O(n)
Espacio auxiliar: O(1)