ProjectWithSourceCodes
1.03K subscribers
307 photos
8 videos
43 files
1.35K links
Free Source Code Projects for Students 🚀 | Python | Java | Android | Web Dev | AI/ML | Final Year Projects | BCA • BTech • MCA | Interview Prep | Job Alerts

Website: https://updategadh.com
Download Telegram
DSA CHEAT SHEET — Save This Post!
Most Asked Patterns in TCS Infosys Amazon Interviews!

====================================

90% of coding interviews use THESE 10 patterns.
Master these = crack any tech interview!

====================================
PATTERN 1: TWO POINTERS
Use when: Sorted array, find pairs, remove duplicates
Problems: Two Sum, Reverse String, 3Sum
Logic: left=0, right=n-1, move based on condition
Companies: Amazon, Microsoft, TCS

PATTERN 2: SLIDING WINDOW
Use when: Subarray/substring with condition
Problems: Max sum subarray, Longest substring
Logic: Expand right, shrink left when invalid
Companies: Infosys, Wipro, Google

PATTERN 3: BINARY SEARCH
Use when: Sorted array, find position/condition
Problems: Search in rotated array, Find peak
Logic: mid = (lo+hi)//2, eliminate half each time
Companies: Amazon, Flipkart, Accenture

PATTERN 4: LINKED LIST (Fast & Slow Pointer)
Use when: Cycle detection, find middle
Problems: Detect cycle, Find middle, Palindrome
Logic: slow moves 1 step, fast moves 2 steps
Companies: TCS, Infosys, HCL

PATTERN 5: TREE BFS (Level Order)
Use when: Level-by-level traversal, shortest path
Problems: Level order, Zigzag, Right side view
Logic: Use queue, process level by level
Companies: Amazon, Cognizant, Capgemini

====================================
PATTERN 6: TREE DFS
Use when: Path sum, depth, validate BST
Problems: Max depth, Path sum, Inorder traversal
Logic: Recursion — visit node, left, right
Companies: Microsoft, Wipro, IBM

PATTERN 7: DYNAMIC PROGRAMMING
Use when: Optimization, count ways, max/min
Problems: Fibonacci, Knapsack, LCS, Coin change
Logic: Break into subproblems, store results
Companies: Amazon, Goldman Sachs, Barclays

PATTERN 8: STACK
Use when: Matching brackets, next greater element
Problems: Valid Parentheses, Stock Span, Min Stack
Logic: Push/pop based on LIFO order
Companies: TCS, Accenture, Infosys

PATTERN 9: HASHING (HashMap)
Use when: Count frequency, find duplicates, grouping
Problems: Two Sum, Anagram, Group Anagrams
Logic: key=element, value=count/index
Companies: Google, Amazon, Flipkart

PATTERN 10: GREEDY
Use when: Local optimal = global optimal
Problems: Activity selection, Jump game, Intervals
Logic: Always pick the best option at each step
Companies: Wipro, HCL, Mindtree

====================================
MUST KNOW COMPLEXITY:

Array access -> O(1)
Binary Search -> O(log n)
Linear Search -> O(n)
Bubble Sort -> O(n2)
Merge/Quick Sort-> O(n log n)
HashMap get/put -> O(1) average
BFS/DFS -> O(V + E)

====================================
30-DAY DSA PLAN FOR PLACEMENTS:

Week 1: Arrays + Strings + Hashing
Week 2: Linked List + Stack + Queue
Week 3: Trees + Binary Search
Week 4: DP + Greedy + Mock Tests

Practice on: LeetCode / GeeksForGeeks
Target: 2 problems daily = 60 problems/month

====================================
SAVE this post now!
You will need it before every interview!

Want FREE projects for your resume too?
https://t.me/Projectwithsourcecodes

Share with your placement batch!

#DSA #DataStructures #Algorithms #CodingInterview
#TCS #Infosys #Wipro #Amazon #Microsoft #Google
#LeetCode #PlacementPrep #CampusPlacement
#BTech2026 #MCA2026 #BCA2026 #OffCampus
#DynamicProgramming #BinarySearch #LinkedList
#ProjectWithSourceCodes #StudentsOfIndia #Coding
1
DSA CHEAT SHEET - Save This!
Data Structures Asked in Every Tech Interview!

====================================

DSA is tested at Amazon, Google, Microsoft,
Flipkart, Adobe, Uber, Swiggy — ALL of them!
Master these before your placement rounds!

====================================
ARRAYS - Most Basic, Most Asked!

Two Sum -> HashMap O(n)
Find max/min -> linear scan O(n)
Reverse array -> two pointers O(n)
Find duplicates -> HashSet O(n)
Rotate by k -> reverse technique O(n)
Subarray sum -> sliding window O(n)
Merge sorted arrays -> two pointer O(n+m)

====================================
STRINGS

Palindrome check -> two pointers O(n)
Anagram check -> sort or HashMap O(n)
Longest substring no repeat -> sliding window
String reversal -> s[::-1] in Python
Count char frequency -> HashMap O(n)

====================================
LINKED LIST - Very Frequently Asked!

Reverse linked list -> 3 pointer trick O(n)
Detect cycle -> Floyd's slow/fast O(n)
Find middle -> slow/fast pointers O(n)
Merge 2 sorted lists -> compare & link O(n)
Remove Nth from end -> two pass O(n)

====================================
STACK & QUEUE

Stack (LIFO) - use for:
-> Valid parentheses {[()]}
-> Next Greater Element
-> Undo/Redo operations

Queue (FIFO) - use for:
-> BFS (level order tree traversal)
-> Sliding window maximum

====================================
TREES - 30% of Interview Questions!

Inorder: Left Root Right
Preorder: Root Left Right
Postorder: Left Right Root
Level Order: BFS using Queue

Height of tree -> recursion O(n)
Check BST valid -> inorder sorted check
Lowest Common Ancestor -> recursive O(n)
Path sum root to leaf -> DFS O(n)

====================================
GRAPHS

BFS -> Queue, shortest path unweighted
DFS -> Stack/Recursion, path finding
Detect cycle undirected -> Union Find
Detect cycle directed -> DFS + visited
Topological Sort -> Kahn's algo (BFS)

====================================
DYNAMIC PROGRAMMING

Fibonacci -> memoization O(n)
0/1 Knapsack -> 2D DP O(n*W)
Longest Common Subsequence -> 2D DP
Coin Change -> bottom-up DP O(n*amount)
Climb Stairs -> DP same as Fibonacci

====================================
TIME COMPLEXITY QUICK REFERENCE:

O(1) Constant | Array index
O(logn) Log | Binary search
O(n) Linear | Single loop
O(nlogn) Linearithmic | Merge sort
O(n2) Quadratic | Nested loops
O(2n) Exponential | Recursion tree

====================================
TOP DSA PRACTICE PLATFORMS:
LeetCode -> leetcode.com (must!)
GeeksForGeeks -> geeksforgeeks.org
HackerRank -> hackerrank.com
Codeforces -> codeforces.com

====================================
Save this - revise before every interview!
Get FREE projects with DSA implementations:
https://t.me/Projectwithsourcecodes

Share with your placement batch!

#DSACheatSheet #DSA #DataStructures #Algorithms
#LeetCode #CodingInterview #Placements #FAANG
#BTech2026 #MCA2026 #BCA2026 #CompetitiveCoding
#Java #Python #TechInterview #DynamicProgramming
#ProjectWithSourceCodes #StudentsOfIndia
🚀 Advanced Coding Interview Questions with Answers (Part 1)

1️⃣ Find the Longest Substring Without Repeating Characters

👉 Given a string, find the length of the longest substring containing no duplicate characters.

def longest_unique_substring(s):
seen = set()
left = 0
max_length = 0

for right in range(len(s)):
while s[right] in seen:
seen.remove(s[left])
left += 1

seen.add(s[right])
max_length = max(max_length, right - left + 1)

return max_length

print(longest_unique_substring("abcabcbb"))


📌 Output:

3


Time Complexity: O(n)
💾 Space Complexity: O(n)

---

2️⃣ Find the Kth Largest Element in an Array

👉 Find the Kth largest element without completely sorting the array.

import heapq

def kth_largest(nums, k):
heap = nums[:k]
heapq.heapify(heap)

for num in nums[k:]:
if num > heap[0]:
heapq.heapreplace(heap, num)

return heap[0]

print(kth_largest([3, 2, 1, 5, 6, 4], 2))


📌 Output:

5


Time Complexity: O(n log k)
💾 Space Complexity: O(k)

---

3️⃣ Detect a Cycle in a Linked List

👉 Determine whether a linked list contains a cycle using Floyd's Cycle Detection Algorithm.

def has_cycle(head):
slow = head
fast = head

while fast and fast.next:
slow = slow.next
fast = fast.next.next

if slow == fast:
return True

return False


💡 The slow pointer moves one step while the fast pointer moves two steps.

Time Complexity: O(n)
💾 Space Complexity: O(1)

---

4️⃣ Find the Maximum Subarray Sum

👉 Find the contiguous subarray with the largest sum using Kadane's Algorithm.

def max_subarray_sum(nums):
current = nums[0]
maximum = nums[0]

for num in nums[1:]:
current = max(num, current + num)
maximum = max(maximum, current)

return maximum

print(max_subarray_sum([-2, 1, -3, 4, -1, 2, 1, -5, 4]))


📌 Output:

6


Time Complexity: O(n)
💾 Space Complexity: O(1)

---

5️⃣ Merge Overlapping Intervals

👉 Given a collection of intervals, merge all overlapping intervals.

def merge_intervals(intervals):
intervals.sort(key=lambda x: x[0])
merged = []

for start, end in intervals:
if not merged or start > merged[-1][1]:
merged.append([start, end])
else:
merged[-1][1] = max(merged[-1][1], end)

return merged

print(merge_intervals([[1, 3], [2, 6], [8, 10], [9, 12]]))


📌 Output:

[[1, 6], [8, 12]]


Time Complexity: O(n log n)
💾 Space Complexity: O(n)

---

💬 Save this for your advanced coding interview preparation!

🔥 Part 2 will cover 5 harder problems on Binary Search, Dynamic Programming, Graphs, Backtracking & Sliding Window.

#Coding #CodingInterview #Python #DSA #AdvancedCoding #Algorithms #DynamicProgramming #Graphs #Programming #TechInterview