Skip to main content
AI EducademyAIEducademy
🌳

AI की नींव

🌱
AI Seeds

वास्तविक दुनिया के लिए एआई साक्षरता

🌿
AI Sprouts

बुद्धिमान प्रणालियों के पीछे की नींव

🌳
AI Branches

आज की AI क्षमताओं के साथ निर्माण करें

🏕️
AI Canopy

इंजीनियर विश्वसनीय GenAI सिस्टम

🌲
AI Forest

एआई उत्पादों को जिम्मेदारी से शिप करें

🔨

AI में महारत

✏️
AI Sketch

एआई बिल्डरों के लिए इंजीनियरिंग फाउंडेशन

🪨
AI Chisel

कठिन समस्याओं को हल करने के लिए पैटर्न

⚒️
AI Craft

ऐसे डिज़ाइन सिस्टम जो AI को मापें

💎
AI Polish

एआई युग में संचार करें और नेतृत्व करें

🏆
AI Masterpiece

आपका उत्पादन एआई कैपस्टोन

🚀

करियर रेडी

🚀
इंटरव्यू लॉन्चपैड

एआई इंजीनियरिंग जॉब मार्केट पर नेविगेट करें

🌟
व्यवहारिक इंटरव्यू में महारत

आप कैसे प्रभाव पैदा करते हैं इसकी कहानी बताएं

💻
तकनीकी इंटरव्यू

दबाव में समाधान करें, डिज़ाइन करें और संवाद करें

🤖
AI और ML इंटरव्यू

आधुनिक ML और GenAI साक्षात्कार के लिए तैयारी करें

🏆
ऑफर और उससे आगे

अगला कदम आत्मविश्वासपूर्ण और जानकारीपूर्ण बनाएं

सभी कार्यक्रम देखें→

लैब

7 प्रयोग लोड हुए
🧠न्यूरल नेटवर्क प्लेग्राउंड🤖AI या इंसान?💬प्रॉम्प्ट लैब🎨इमेज जनरेटर😊सेंटिमेंट एनालाइज़र💡चैटबॉट बिल्डर⚖️एथिक्स सिमुलेटर
🎯मॉक इंटरव्यूलैब में जाएँ→
यात्राब्लॉग
🎯
हमारे बारे में

हर जगह, हर किसी के लिए AI शिक्षा सुलभ बनाना

❓
अक्सर पूछे जाने वाले प्रश्न

सामान्य प्रश्नों के उत्तर

🧰
AI टूल्स

हमारे चुने हुए और सुझाए गए टूल्स

✉️
संपर्क

हमसे संपर्क करें

⭐
ओपन सोर्स

GitHub पर सार्वजनिक रूप से निर्मित

मूल्य
सीखना शुरू करें
AI EducademyAIEducademy

© 2026 AI Educademy. सर्वाधिकार सुरक्षित।

सीखें

  • कार्यक्रम
  • पाठ
  • लैब
  • एआई स्टार्टर किट
  • मूल्य

समुदाय

  • GitHub
  • योगदान करें
  • आचार संहिता
  • हमारे बारे में
  • सामान्य प्रश्न

सहायता

  • कॉफ़ी खरीदें ☕
  • सेवा की शर्तें
  • गोपनीयता नीति
  • संपर्क करें
  • Sitemap
AI और इंजीनियरिंग प्रोग्राम›💻 तकनीकी इंटरव्यू›पाठ›इंटरव्यू के लिए डेटा स्ट्रक्चर
📊
तकनीकी इंटरव्यू • मध्यम⏱️ 20 मिनट पढ़ने का समय

इंटरव्यू के लिए डेटा स्ट्रक्चर

इंटरव्यू के लिए डेटा स्ट्रक्चर

एक बात है जिसके लिए शीर्ष इंटरव्यू कोच आपसे $500 नहीं लेने चाहिए: कोडिंग इंटरव्यू की लगभग 90% समस्याएँ सिर्फ सात डेटा स्ट्रक्चर के आसपास घूमती हैं। अगर आप गहराई से समझते हैं कि कब और क्यों किस स्ट्रक्चर का उपयोग करना है, तो आधी लड़ाई आप पहले ही जीत चुके हैं। बाकी आधी अभ्यास है, लेकिन सही मानसिक मॉडल के बिना अभ्यास सिर्फ रटने जैसा हो जाता है। यह पाठ आपको वह नक्शा देता है, जिससे हर नई समस्या पहचाने हुए इलाके जैसी लगे।

जानने लायक 7 ज़रूरी डेटा स्ट्रक्चर

हर तकनीकी इंटरव्यू उसी स्रोत से सवाल लेता है। ये वे स्ट्रक्चर हैं जो आपको मिलेंगे, आवृत्ति के क्रम में:

| डेटा स्ट्रक्चर | इंटरव्यू आवृत्ति | मुख्य ऑपरेशन | इंटरव्यूअर कब इसकी अपेक्षा करते हैं | |---|---|---|---| | ऐरे / स्ट्रिंग | ★★★★★ | एक्सेस O(1), खोज O(n), इन्सर्ट O(n) | लगभग हर समस्या यहीं से शुरू होती है | | हैश मैप / सेट | ★★★★★ | इन्सर्ट O(1), खोज O(1), डिलीट O(1) | "इसे O(n²) से O(n) में ऑप्टिमाइज़ करें" | | लिंक्ड लिस्ट | ★★★★☆ | इन्सर्ट O(1), डिलीट O(1), एक्सेस O(n) | पॉइंटर मैनिपुलेशन, साइकल डिटेक्शन | | स्टैक और क्यू | ★★★★☆ | पुश/पॉप O(1), एनक्यू/डीक्यू O(1) | पार्सिंग, BFS, अनडू ऑपरेशन | | ट्री (बाइनरी, BST) | ★★★★☆ | खोज O(log n), इन्सर्ट O(log n) | पदानुक्रमित डेटा, सॉर्टेड ऑपरेशन | | ग्राफ़ | ★★★☆☆ | निरूपण पर निर्भर | संबंध, पाथ, कनेक्टिविटी | | हीप | ★★★☆☆ | इन्सर्ट O(log n), एक्सट्रैक्ट-मिन O(log n) | "सबसे बड़े/छोटे k खोजें" |

💡
अगर आपके पास तैयारी के लिए सिर्फ एक सप्ताह है, तो ऐरे, हैश मैप और ट्री पर ध्यान दें। FAANG-स्तर की कंपनियों में अधिकतर इंटरव्यू सवाल इन्हीं तीन से आते हैं।

ऐरे और स्ट्रिंग: आपकी बुनियाद

लगभग हर इंटरव्यू समस्या की शुरुआत ऐरे से होती है। मुख्य समझ यह है कि अधिकतर ऐरे समस्याएँ सच में ऐरे के बारे में नहीं होतीं। वे दो पॉइंटर, स्लाइडिंग विंडो या प्रीफ़िक्स सम जैसे पैटर्न पहचानने के बारे में होती हैं।

# Two Sum — the most classic interview problem
# "Given an array and target, find two numbers that add to target"
def two_sum(nums, target):
    seen = {}  # Hash map to store complement
    for i, num in enumerate(nums):
        complement = target - num
        if complement in seen:
            return [seen[complement], i]
        seen[num] = i
    return []

# Time: O(n), Space: O(n) — trading space for time

ध्यान दें कि यह "ऐरे" समस्या भी सच में हैश मैप समस्या है। यह पैटर्न बार-बार दिखता है: ब्रूट फ़ोर्स ऐरे पर नेस्टेड लूप लगाता है, और ऑप्टिमल समाधान हैश मैप जोड़ता है।

हैश मैप: इंटरव्यू का स्विस आर्मी नाइफ़

अगर आप किसी समस्या में अटके हैं और ब्रूट फ़ोर्स O(n²) है, तो खुद से पूछें: "क्या हैश मैप इसे O(n) कर सकता है?" हैरानी की बात है कि उत्तर अक्सर हाँ होता है।

हैश मैप तब बहुत काम आते हैं जब आपको यह करना हो:

8 का पाठ 10% पूर्ण
←प्रोग्राम पर वापस
जारी रखें: एल्गोरिदम पैटर्न और रणनीतियाँ→

चर्चा

साइन इन करें चर्चा में शामिल होने के लिए

इस पाठ में संपादन सुझाएं
  • आवृत्ति गिनना: अक्षर गिनती, शब्द गिनती, तत्व आवृत्ति
  • देखे हुए तत्व ट्रैक करना: डुप्लिकेट डिटेक्शन, two-sum जैसी समस्याएँ
  • आइटम समूहित करना: ऐनाग्राम ग्रुपिंग, वर्गीकरण
  • कम्प्यूटेशन कैश करना: डायनेमिक प्रोग्रामिंग में मेमोइज़ेशन
// Group Anagrams — a classic hash map problem
public List<List<String>> groupAnagrams(String[] strs) {
    Map<String, List<String>> map = new HashMap<>();
    for (String s : strs) {
        char[] chars = s.toCharArray();
        Arrays.sort(chars);
        String key = new String(chars);
        map.computeIfAbsent(key, k -> new ArrayList<>()).add(s);
    }
    return new ArrayList<>(map.values());
}
🤔
Think about it:जब किसी समस्या में "खोजें", "गिनें" या "जाँचें कि मौजूद है या नहीं" कहा जाए, तो कौन सा डेटा स्ट्रक्चर तुरंत दिमाग में आना चाहिए? हैश मैप के O(1) खोज और सॉर्टेड ऐरे के O(log n) बाइनरी सर्च के बीच ट्रेड-ऑफ़ आप कैसे समझाएँगे?

लिंक्ड लिस्ट: पॉइंटर पर पकड़

लिंक्ड लिस्ट समस्याएँ जाँचती हैं कि आप नोड खोए बिना पॉइंटर बदल सकते हैं या नहीं। आपको तीन तकनीकें आनी चाहिए:

  1. दो पॉइंटर (फ़ास्ट/स्लो): साइकल डिटेक्शन, बीच का नोड खोजना
  2. डमी हेड नोड: जब हेड बदल सकता हो तो एज केस सरल होते हैं
  3. रिवर्सल: इटरेटिव रिवर्सल कई समस्याओं की बुनियाद है
# Detect a cycle in a linked list (Floyd's Algorithm)
def has_cycle(head):
    slow = fast = head
    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next
        if slow == fast:
            return True
    return False
🤯
Floyd का साइकल डिटेक्शन एल्गोरिदम, जिसे "tortoise and hare" एल्गोरिदम भी कहा जाता है, 1967 में प्रकाशित हुआ था। यह आधुनिक कोडिंग इंटरव्यू में अब भी पूछे जाने वाले सबसे पुराने एल्गोरिदम में से एक है, 55 साल से भी अधिक समय बाद।

स्टैक और क्यू: क्रम मायने रखता है

स्टैक (LIFO) और क्यू (FIFO) सरल स्ट्रक्चर हैं, लेकिन वे पूरी समस्या श्रेणियाँ खोल देते हैं:

  • स्टैक: मान्य parentheses, expression evaluation, monotonic stack समस्याएँ, undo/redo
  • क्यू: BFS ट्रैवर्सल, sliding window maximum (deque के साथ), task scheduling
# Valid Parentheses — classic stack problem
def is_valid(s: str) -> bool:
    stack = []
    matching = {')': '(', '}': '{', ']': '['}
    for char in s:
        if char in matching:
            if not stack or stack[-1] != matching[char]:
                return False
            stack.pop()
        else:
            stack.append(char)
    return len(stack) == 0

ट्री: पदानुक्रमित सोच

ट्री समस्याओं में आम तौर पर रिकर्शन और तीन ट्रैवर्सल क्रमों में से एक शामिल होता है: इन-ऑर्डर, प्री-ऑर्डर, पोस्ट-ऑर्डर। विकसित करने वाला मानसिक मॉडल है: "मुझे बाएँ सबट्री से क्या चाहिए, दाएँ सबट्री से क्या चाहिए, और मौजूदा नोड पर उन्हें कैसे मिलाना है?"

# Maximum depth of a binary tree — the template for tree recursion
def max_depth(root):
    if not root:
        return 0
    left_depth = max_depth(root.left)
    right_depth = max_depth(root.right)
    return 1 + max(left_depth, right_depth)

BST (Binary Search Tree) समस्याएँ एक अहम गुण जोड़ती हैं: इन-ऑर्डर ट्रैवर्सल सॉर्टेड तत्व देता है। अगर एक ही समस्या में "सॉर्टेड" और "ट्री" दिखें, तो तुरंत BST सोचें।

ग्राफ़: संबंधों को मॉडल करना

ग्राफ़ समस्याएँ डरावनी लग सकती हैं, लेकिन adjacency list बनाने के बाद अधिकतर BFS या DFS में बदल जाती हैं। मुख्य कौशल ये हैं:

  • ग्राफ़ बनाना: edge list या matrix से
  • BFS: unweighted graph में shortest path के लिए
  • DFS: connectivity, cycle detection, topological sort के लिए
# BFS shortest path in an unweighted graph
from collections import deque

def shortest_path(graph, start, end):
    queue = deque([(start, 0)])
    visited = {start}
    while queue:
        node, distance = queue.popleft()
        if node == end:
            return distance
        for neighbour in graph[node]:
            if neighbour not in visited:
                visited.add(neighbour)
                queue.append((neighbour, distance + 1))
    return -1  # Not reachable

हीप: "Top K" का संकेत

जब भी समस्या में "K largest", "K closest" या "merge K sorted lists" कहा जाए, तो heap (priority queue) लगभग निश्चित रूप से सही उत्तर है। Python में heapq min-heap देता है। max-heap के लिए मानों को negate करें।

import heapq

# Find the K largest elements in an array
def k_largest(nums, k):
    return heapq.nlargest(k, nums)  # Uses a min-heap of size k internally
🧠त्वरित जांच

आपको संख्याओं की stream का median हर insertion पर O(log n) में खोजना है। कौन सा data structure combination सबसे उपयुक्त है?

समय और स्पेस कॉम्प्लेक्सिटी चीट शीट

| स्ट्रक्चर | एक्सेस | खोज | इन्सर्ट | डिलीट | स्पेस | |---|---|---|---|---|---| | ऐरे | O(1) | O(n) | O(n) | O(n) | O(n) | | हैश मैप | - | O(1)* | O(1)* | O(1)* | O(n) | | लिंक्ड लिस्ट | O(n) | O(n) | O(1) | O(1) | O(n) | | स्टैक/क्यू | O(n) | O(n) | O(1) | O(1) | O(n) | | BST (balanced) | O(log n) | O(log n) | O(log n) | O(log n) | O(n) | | हीप | - | O(n) | O(log n) | O(log n) | O(n) |

* औसत केस। हैश collisions के कारण worst case O(n) है।

पैटर्न पहचान: सही स्ट्रक्चर चुनना

समस्या पढ़ते समय यह मानसिक चेकलिस्ट विकसित करें:

  • तेज़ खोज चाहिए? → हैश मैप
  • सॉर्टेड क्रम चाहिए? → BST या सॉर्टेड ऐरे + बाइनरी सर्च
  • FIFO processing चाहिए? → क्यू (BFS)
  • LIFO / backtracking चाहिए? → स्टैक (DFS)
  • top-K या priority चाहिए? → हीप
  • connections मॉडल करने हैं? → ग्राफ़
  • index से O(1) access चाहिए? → ऐरे
💡
अपने इंटरव्यू में साफ़ कहें कि आप कौन सा डेटा स्ट्रक्चर चुन रहे हैं और क्यों। "मैं यहाँ हैश मैप इस्तेमाल करूँगा क्योंकि nested loop से बचने के लिए हमें O(1) lookups चाहिए" कहना वही इंजीनियरिंग सोच दिखाता है जो इंटरव्यूअर देखना चाहते हैं।

मुख्य बातें

  • सात स्ट्रक्चर 90% इंटरव्यू कवर करते हैं: ऐरे, हैश मैप, लिंक्ड लिस्ट, स्टैक/क्यू, ट्री, ग्राफ़ और हीप।
  • हैश मैप आपका सबसे अच्छा साथी है: संदेह हो तो हैश मैप शायद मदद करेगा।
  • कॉम्प्लेक्सिटी अच्छी तरह याद रखें: हर समाधान के बाद इंटरव्यूअर पूछेंगे, "time complexity क्या है?"
  • पैटर्न पहचान रटने से बेहतर है: समस्या संकेतों ("top K" → heap, "shortest path" → BFS) को सही स्ट्रक्चर से जोड़ना सीखें।
  • जानबूझकर अभ्यास करें: हर डेटा स्ट्रक्चर पर 3-5 समस्याएँ हल करें, गति से अधिक समझ पर ध्यान दें। गति समझ से आती है।