/>

Lesson 1 — Beginner

Arrays: Data ka Foundation

Arrays DSA ki sabse pehli building block hai. Agar tum arrays samajh lete ho, toh baaki sab topics tumhare liye easy ho jayenge. Chalo step by step samajhte hain.

⏱ 20 min• Beginner• Python basics

Memory me array: locker line

index 010
index 120
index 230
index 340
index 450

Locker number (index) pata ho to seedha jump — arr[2] turant 30 deta hai. Isi ko O(1) kehte hain.

Array hota kya hai?

WHAT

Array ek collection hai same type ke data ka jo contiguous memory locations mein store hota hai. MATLAB agar tumhe 10 numbers store karne hain, toh array ek saath 10 jagah allocate karta hai aur tum index se access kar sakte ho.

WHEN

Jab tumhe multiple values ko ek naam se store karna ho, jab random access chahiye (kisi bhi index pe seedha jaake value lo), ya jab ordered collection chahiye — tab array use karo.

WHERE

Har jagah! Sorting algorithms, searching, sliding window, two pointers — sab arrays pe based hain. Interview mein arrays se hi questions shuru hote hain.

Mental Model: Imagine karo ek row of lockers school mein. Har locker ka ek number hai (index). Agar tumhe pata hai locker number, toh tum seedha uss locker ke paas jaake content le sakte ho — ye hai O(1) access. Arrays bhi exactly aise kaam karte hain.
# Python mein array (list) declare karna
arr = [10, 20, 30, 40, 50]

# Index se access karna — O(1) time
print(arr[0]) # 10 (pehla element)
print(arr[2]) # 30 (teesra element)

# Last element
print(arr[-1]) # 50

Python mein list hi array ka kaam karti hai. Different languages mein different syntax hota hai — C/C++ mein int arr[5], Java mein int[] arr = new int[5]. Concept same hai, sirf syntax alag hai.

Memory Layout samjho

Arrays ka sabse bada advantage hai contiguous memory allocation. Iska matlab hai jab tum arr[0] lete ho, toh arr[1] bas next memory block mein hota hai. Isliye array traversal itna fast hota hai — CPU cache-friendly hota hai.

# Memory visualization
# Index: 0 1 2 3 4
# Value: 10 20 30 40 50
# Address: 100 104 108 112 116

# Har element 4 bytes (int) leta hai
# arr[2] ka address = base + 2 * 4 = 100 + 8 = 108
# Isliye access O(1) hai — formula based!
Key Point: Array ka base address + index * size = element ka address. Ye formula hai jo O(1) access deta hai. Isi wajah se arrays random access support karte hain — koi loop nahi chalana padta.

Traversal Patterns

Traversal ka matlab hai array ke har element ko ek ek karke visit karna. Ye DSA ki sabse fundamental skill hai. 3 tarike hain:

arr = [10, 20, 30, 40, 50]

# Pattern 1: Direct traversal
for x in arr:
 print(x)

# Pattern 2: Index-based traversal
for i in range(len(arr)):
 print(i, arr[i])

# Pattern 3: Reverse traversal
for i in range(len(arr)-1, -1, -1):
 print(arr[i])

Har pattern ka apna use case hai. Direct traversal tab use karo jab sirf values chahiye. Index-based tab jab index ki zaroorat ho (jaise swapping karni ho). Reverse traversal tab jab peeche se kaam karna ho (jaise stack implementation).

Fixed vs Dynamic Arrays

C/C++ mein arrays fixed size ke hote hain — ek baar declare kiya toh size change nahi hoga. Python ki list dynamic hai — elements add/remove kar sakte ho runtime pe.

# Python list — dynamic
arr = [1, 2, 3]
arr.append(4) # [1, 2, 3, 4]
arr.pop() # [1, 2, 3]
arr.insert(1, 10) # [1, 10, 2, 3]

# Length check
print(len(arr)) # 3

# Slicing
sub = arr[1:3] # [10, 2]
Python ka Magic: Python lists internally dynamic arrays hain. Jab capacity khatam hoti hai, Python ek bada array allocate karta hai aur purane elements copy karta hai. Amortized time O(1) hota hai append ka, but worst case O(n) hai.

Time Complexity yaad rakho

O(1) — Access

Kisi bhi index pe seedha jaake value lo. Loop ki zaroorat nahi.

O(n) — Search

Agar array sorted nahi hai, toh har element check karna padega. Worst case mein n comparisons.

O(n) — Insert/Delete

End pe O(1) hai. Beginning ya middle mein insert/delete O(n) hai kyunki elements shift karne padenge.

Try it: code khud likho

Exercise

Question: Given array arr = [12, 45, 2, 67, 23, 9], function likho jo maximum element return kare. Answer mein sirf number daalo.

Question: Given array arr = [5, 10, 15, 20], function likho jo sab elements ka sum return kare. Answer mein sirf number daalo.

Common mistakes

Desi example: IPL last 5 balls ka total

Scoreboard [1, 4, 6, 2, 1, 0, 4] hai. Last 5 balls ka max total nikaalna = sliding-window ki soch. Array pehle pakka karo, phir window pattern aasaan lagega.

python
runs = [1, 4, 6, 2, 1, 0, 4]
print(runs[-5:])  # last 5 balls
print(sum(runs[-5:]))  # total
# Interview soch: poora sum baar-baar kyun? Agli lesson me O(n) window seekhoge.
MNC company tags (is lesson ke baad)
  • Two Sum — Amazon / Flipkart (hashmap, O(n)).
  • Merge Intervals — Google / Microsoft (sort + scan).
  • Train coach analogy: coach number = index, seat = value — O(1) access yaad rakho.
Lesson complete?

Arrays samajh aa gaye? Ab Two Pointer technique seekhte hain — ye arrays pe based bahut powerful pattern hai.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course