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

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

Lesson complete?

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