🚀 Top DSA Questions for MAANG Interviews 🚀

Listen to this Post

1️⃣ Two Sum

2️⃣ Longest Palindromic Substring

3️⃣ Merge Intervals

4️⃣ Kth Largest Element in an Array

5️⃣ LRU Cache

6️⃣ Word Break Problem

7️⃣ Find Cycle in a Linked List

8️⃣ Number of Islands

💡 Want to crack MAANG? Start solving these!

Practice Verified Codes and Commands

Two Sum (Python)

def two_sum(nums, target): 
hash_map = {} 
for i, num in enumerate(nums): 
complement = target - num 
if complement in hash_map: 
return [hash_map[complement], i] 
hash_map[num] = i 
return [] 

Longest Palindromic Substring (Python)

def longest_palindromic_substring(s): 
def expand(l, r): 
while l >= 0 and r < len(s) and s[l] == s[r]: 
l -= 1 
r += 1 
return s[l+1:r] 
res = "" 
for i in range(len(s)): 
odd = expand(i, i) 
even = expand(i, i+1) 
res = max(res, odd, even, key=len) 
return res 

Merge Intervals (Python)

def merge_intervals(intervals): 
intervals.sort(key=lambda x: x[0]) 
merged = [] 
for interval in intervals: 
if not merged or merged[-1][1] < interval[0]: 
merged.append(interval) 
else: 
merged[-1][1] = max(merged[-1][1], interval[1]) 
return merged 

Kth Largest Element in an Array (Python)

import heapq 
def find_kth_largest(nums, k): 
return heapq.nlargest(k, nums)[-1] 

LRU Cache (Python)

from collections import OrderedDict 
class LRUCache: 
def <strong>init</strong>(self, capacity): 
self.cache = OrderedDict() 
self.capacity = capacity 
def get(self, key): 
if key not in self.cache: 
return -1 
self.cache.move_to_end(key) 
return self.cache[key] 
def put(self, key, value): 
if key in self.cache: 
self.cache.move_to_end(key) 
self.cache[key] = value 
if len(self.cache) > self.capacity: 
self.cache.popitem(last=False) 

Find Cycle in a Linked List (Python)

class ListNode: 
def <strong>init</strong>(self, x): 
self.val = x 
self.next = None 
def has_cycle(head): 
slow, fast = head, head 
while fast and fast.next: 
slow = slow.next 
fast = fast.next.next 
if slow == fast: 
return True 
return False 

Number of Islands (Python)

def num_islands(grid): 
def dfs(i, j): 
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] == '0': 
return 
grid[i][j] = '0' 
dfs(i+1, j) 
dfs(i-1, j) 
dfs(i, j+1) 
dfs(i, j-1) 
count = 0 
for i in range(len(grid)): 
for j in range(len(grid[0])): 
if grid[i][j] == '1': 
dfs(i, j) 
count += 1 
return count 

What Undercode Say

Mastering Data Structures and Algorithms (DSA) is crucial for cracking MAANG interviews. The provided problems, such as Two Sum, Longest Palindromic Substring, and LRU Cache, are foundational for understanding algorithmic thinking. Practice these problems using Python or any preferred language. Additionally, familiarize yourself with Linux commands like grep, awk, and `sed` for text processing, or Windows commands like `ipconfig` and `netstat` for network troubleshooting. For further learning, explore platforms like LeetCode, HackerRank, and GeeksforGeeks. Remember, consistent practice and understanding core concepts are key to success in technical interviews.

Useful URLs:

References:

initially reported by: https://www.linkedin.com/posts/sumit-yadav-08562422b_dsa-activity-7302162534587887616-wwLo – Hackers Feeds
Extra Hub:
Undercode AIFeatured Image