Delete an Element from a Given Position in an Array
Problem Statement
Given an array of n elements, delete the element present at a specified position.
- The array uses 0-based indexing
- The position must be in the range 0 to n-1
- After deletion, all elements to the right of the deleted element must be shifted one position to the left
Example 1
Input
arr = [1, 2, 3, 4, 5]
position = 2
Output
[1, 2, 4, 5]
Explanation
- Element at index 2 is 3
- After deleting 3, remaining elements shift left
Example 2
Input
arr = [10, 20, 30, 40]
position = 0
Output
[20, 30, 40]
Explanation
- First element is removed
- All remaining elements move one position left
Why This Problem Is Important
- Tests array indexing and shifting logic
- Commonly asked in coding interviews
- Builds a foundation for:
- Dynamic array operations
- Memory-efficient data handling
- List and buffer manipulation
Approaches to Solve the Problem
- Manual Shifting (Core Logic – Interview Preferred)
- Using Built-in Methods (Language Optimized)
Approach 1: Manual Shifting (Core Logic)
Idea
- Start from the deletion position
- Shift each element one position to the left
- Reduce the array size by one
Algorithm
- For i = position to n-2
- arr[i] = arr[i + 1]
- Decrease array size by 1
- Print the updated array
Time and Space Complexity
- Time Complexity: O(n)
- Space Complexity: O(1)
C Implementation
#include<stdio.h>
int main() {
int arr[100] = {1, 2, 3, 4, 5};
int n = 5;
int position = 2;
for(int i = position; i < n - 1; i++) {
arr[i] = arr[i + 1];
}
n--;
printf("Array after deletion: ");
for(int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
C++ Implementation (Manual)
#include<iostream>
using namespace std;
int main() {
int arr[10] = {1, 2, 3, 4, 5};
int n = 5;
int position = 2;
for(int i = position; i < n - 1; i++)
arr[i] = arr[i + 1];
n--;
cout << "Array after deletion: ";
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
}
Java Implementation (Manual)
public class DeleteElement {
public static void main(String[] args) {
int[] arr = new int[10];
arr[0]=1; arr[1]=2; arr[2]=3; arr[3]=4; arr[4]=5;
int n = 5;
int position = 2;
for(int i = position; i < n - 1; i++)
arr[i] = arr[i + 1];
n--;
System.out.print("Array after deletion: ");
for(int i = 0; i < n; i++)
System.out.print(arr[i] + " ");
}
}

Approach 2: Using Built-in Methods
Useful in real-world applications, but manual logic is preferred in interviews
Python Implementation
arr = [1, 2, 3, 4, 5]
position = 2
arr.pop(position)
print("Array after deletion:", arr)
C++ (STL Vector)
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector arr = {1, 2, 3, 4, 5};
arr.erase(arr.begin() + 2);
cout << "Array after deletion: ";
for(int x : arr) cout << x << " ";
}
C# Implementation
using System;
using System.Collections.Generic;
class Program {
static void Main() {
List arr = new List {1,2,3,4,5};
arr.RemoveAt(2);
Console.Write("Array after deletion: ");
foreach(int x in arr) Console.Write(x + " ");
}
}
JavaScript Implementation
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 1);
console.log("Array after deletion:", arr);
Dry Run (Manual Approach)
| Step | Array State | Explanation |
|---|---|---|
| Initial | [1,2,3,4,5] | Original array |
| Shift | [1,2,4,4,5] | Shift elements left |
| Resize | [1,2,4,5] | Reduce size |
Summary
- Deletion requires left shifting of elements
- Manual approach tests core array logic
- Built-in methods simplify implementation
Key Points
- Time Complexity: O(n)
- Space Complexity: O(1)
- Index validation is important to avoid errors
Next Problem in the Series
Find the Index of an Element in an array
