删除给定索引范围为[L – R]的数组元素

本文概述

  • 建议:在继续解决方案之前, 请先在{IDE}上尝试使用你的方法。
  • C ++
  • Java
  • Python3
  • C#
  • 的PHP
  • C ++
  • Java
  • Python 3
  • C#
  • 的PHP
给定一个数组A [], 数组大小为N。任务是删除数组A []的元素(在给定范围L至R中), 两者都是互斥的。
例子:
Input : N = 12A[] = { 3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3}L = 2R = 7Output : 3 5 3 6 3 11 12 3 since A[2] = 3 but this is exclude A[7] =6 this also exclude Input : N = 10A[] ={ 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 }L = 4R = 6Output :5 8 11 15 26 19 17 10 14

推荐:请尝试以下方法{IDE}首先, 在继续解决方案之前。一种天真的方法是要删除L到R范围内的元素, 并留出多余的空间。
下面是上述方法的实现:
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 ?>

输出如下:
3 5 3 6 3 11 12 3

时间复杂度:
上)
辅助空间:
【删除给定索引范围为[L – R]的数组元素】上)
An
有效的解决方案
无需使用额外的空间。
下面是上述方法的实现:
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 programto 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 , 7n = 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 ?>

输出如下:
5 8 11 17 10 14

时间复杂度:O(n)
辅助空间:O(1)

    推荐阅读