Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Array Insertion at Beginning in DSA Typescript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array Insertion at Beginning
O(n)
Understanding Time Complexity

When we add an item at the start of an array, the computer must make room for it.

We want to know how the time needed grows as the array gets bigger.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function insertAtBeginning(arr: number[], value: number): number[] {
  for (let i = arr.length; i > 0; i--) {
    arr[i] = arr[i - 1];
  }
  arr[0] = value;
  return arr;
}
    

This code shifts all elements one step right to insert a new value at the start.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-loop that moves each element one position to the right.
  • How many times: It runs once for each element in the array, so n times if the array has n elements.
How Execution Grows With Input

As the array gets bigger, the number of moves grows directly with its size.

Input Size (n)Approx. Operations
1010 moves
100100 moves
10001000 moves

Pattern observation: The work grows in a straight line as the array size increases.

Final Time Complexity

Time Complexity: O(n)

This means the time to insert at the beginning grows directly with the number of elements.

Common Mistake

[X] Wrong: "Inserting at the start is always fast because it's just one step."

[OK] Correct: Actually, all existing elements must move one step right, so the time depends on the array size.

Interview Connect

Understanding this helps you explain why some data structures are better for adding at the front than arrays.

Self-Check

"What if we used a linked list instead of an array? How would the time complexity change?"

Practice

(1/5)
1. What does inserting an element at the beginning of an array do to the existing elements?
easy
A. Replaces the first element with the new element
B. Deletes the last element of the array
C. Shifts all existing elements one position to the right
D. Leaves the array unchanged

Solution

  1. Step 1: Understand array insertion at beginning

    When a new element is inserted at the start, all existing elements move one step to the right to make space.
  2. Step 2: Effect on existing elements

    This shifting means the first element moves to second position, second to third, and so on.
  3. Final Answer:

    Shifts all existing elements one position to the right -> Option C
  4. Quick Check:

    Insert at start shifts elements right [OK]
Hint: New start element pushes others right [OK]
Common Mistakes:
  • Thinking insertion replaces first element
  • Assuming array size decreases
  • Believing array stays unchanged
2. Which of the following is the correct TypeScript syntax to insert an element `5` at the beginning of array `arr`?
easy
A. arr.unshift(5);
B. arr.addFirst(5);
C. arr.insert(0, 5);
D. arr.push(5);

Solution

  1. Step 1: Recall array methods for insertion

    In TypeScript (JavaScript), `unshift` adds elements at the start of an array.
  2. Step 2: Check other options

    `push` adds at the end, `insert` and `addFirst` are not valid array methods.
  3. Final Answer:

    arr.unshift(5); -> Option A
  4. Quick Check:

    Use unshift() to add at beginning [OK]
Hint: Use unshift() to add at start [OK]
Common Mistakes:
  • Using push() which adds at the end
  • Using non-existent methods like insert()
  • Confusing unshift() with pop()
3. What will be the output of the following TypeScript code?
let arr = [10, 20, 30];
arr.unshift(5);
console.log(arr);
medium
A. [10, 20, 30, 5]
B. [5, 10, 20, 30]
C. [5, 20, 30]
D. [10, 5, 20, 30]

Solution

  1. Step 1: Understand unshift effect

    unshift(5) adds 5 at the start, shifting existing elements right.
  2. Step 2: Resulting array

    Original [10, 20, 30] becomes [5, 10, 20, 30].
  3. Final Answer:

    [5, 10, 20, 30] -> Option B
  4. Quick Check:

    unshift adds at front [OK]
Hint: unshift adds element at front [OK]
Common Mistakes:
  • Thinking unshift adds at end
  • Misplacing the new element in the array
  • Confusing unshift with push
4. Identify the error in the following TypeScript code that tries to insert `100` at the beginning of array `nums`.
let nums = [1, 2, 3];
nums.add(0, 100);
console.log(nums);
medium
A. `add` is not a valid method for arrays
B. `console.log` is used incorrectly
C. Array 'nums' is not declared properly
D. The element 100 cannot be added to arrays

Solution

  1. Step 1: Check array method usage

    Arrays in TypeScript do not have an `add` method; insertion at beginning uses `unshift`.
  2. Step 2: Validate other parts

    Declaration and console.log are correct; adding 100 is allowed.
  3. Final Answer:

    `add` is not a valid method for arrays -> Option A
  4. Quick Check:

    Use unshift(), not add() [OK]
Hint: Use unshift(), not add() for insertion [OK]
Common Mistakes:
  • Using non-existent add() method
  • Thinking console.log is wrong
  • Believing arrays can't hold numbers
5. Given an empty array `let data: number[] = [];`, which sequence of operations will result in the array `[3, 2, 1]` by inserting elements only at the beginning?
hard
A. data.unshift(1); data.unshift(2); data.unshift(3);
B. data.push(1); data.push(2); data.push(3);
C. data.push(3); data.unshift(2); data.push(1);
D. data.unshift(3); data.unshift(2); data.unshift(1);

Solution

  1. Step 1: Understand insertion at beginning

    Each unshift adds element at front, pushing existing elements right.
  2. Step 2: Trace operations

    Starting empty: unshift(3) -> [3], unshift(2) -> [2,3], unshift(1) -> [1,2,3].
  3. Final Answer:

    data.unshift(3); data.unshift(2); data.unshift(1); -> Option D
  4. Quick Check:

    Insert in reverse order with unshift [OK]
Hint: Insert last element first with unshift [OK]
Common Mistakes:
  • Using push() which adds at end
  • Inserting elements in wrong order
  • Mixing push and unshift incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard