LearnThatStack Ace your next interview
Arrays, Strings & Hash Tables · question
Question 2 of 85

What is the difference between a static array and a dynamic array?

beginner
← All Arrays, Strings & Hash Tables questions
Re-explain

A static array has a fixed size chosen when it is created, and that size never changes. A dynamic array can grow and shrink at runtime, resizing itself as you add or remove elements.

A dynamic array still stores its elements in one contiguous block. When that block fills up, the array allocates a larger one and copies the elements across. You get flexibility, and you pay for it with an occasional resize.

Use a static array when you know the count ahead of time and want zero overhead. Use a dynamic array, like a Python list or a Java ArrayList, when the size is unknown or keeps changing. Access stays O(1) for both. Only the growth behavior differs between them.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
Guided practice for Arrays, Strings & Hash Tables One question at a time. Answer out loud, get graded, see what you missed.
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens How interviewers actually use this question

Likely follow-ups

What you can say

  1. A static array has a fixed size chosen when it's created, and a dynamic array can grow and shrink at runtime as you add or remove elements.
  2. A dynamic array still stores its elements in one contiguous block, just like a static one.
  3. When that block fills up, it allocates a larger block and copies all the elements across.
  4. Access by index stays O(1) in both, so the only real difference is how they handle growth.
  5. When the size is unknown or keeps changing, I'd use a dynamic array, like a Python list or a Java ArrayList.
  6. If I know the count ahead of time, I'd pick a static array, because it never pays for a resize and carries zero overhead.

Weak answers to avoid

  • Says a dynamic array is a linked list A dynamic array is still one contiguous block, and that is why indexing stays O(1). Say so, then explain how it grows by allocating a bigger block and copying.
  • Claims dynamic arrays have slower access Indexing is O(1) in both. Only the growth behavior differs, so keep access speed out of the trade-off.
  • Treats growth as free Each resize allocates a bigger block and copies every element. Name that cost, then say resizes are rare enough that appends stay cheap on average.
  • Gives definitions but never says when to use each The interviewer wants you to make the choice. Static when the count is known and you want no overhead, dynamic when the size is unknown or keeps changing.
Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Arrays, Strings & Hash Tables cheatsheet.

← Back to all Arrays, Strings & Hash Tables questions
Pro · $10/mo

74 of 85 Arrays, Strings & Hash Tables answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime