If you’re searching for the most frequently asked Meesho coding questions for SDE-1 interviews or Meesho hackathons in 2025, this guide is your one-stop solution. This blog contains real coding questions asked in recent Meesho interviews along with fully explained Java, Python, and JavaScript solutions. Whether you’re preparing for the online coding test or final technical rounds, these Meesho DSA questions will help you crack it confidently.
Developer Hiring Stats at Meesho
Metric | Value |
---|---|
Avg. Applicants per Role | 10,000+ |
Selection Rate | ~1.7% |
OA to Interview Conversion | 22% |
Interview to Offer Conversion | 14% |
Fresher Hiring % | 37% |
Most In-Demand Role | Backend Developer |
Source: Glassdoor India – Meesho Reviews, LinkedIn Jobs
Introduction to Meesho’s Hiring Trends
In 2025, Meesho remains one of India’s most attractive startups for developers. With its unicorn status and product-first culture, the competition is fierce—but so are the rewards.
Why Meesho is a Top Choice for Developers
- Fast-paced, product-oriented environment
- Opportunity to work on scalable systems from Day 1
- Flexible team dynamics
- Growth mindset + open-source contribution encouragement
What to Expect in 2025 Hiring Process
Expect a mix of data structures, algorithms, and cultural fit. Meesho is now prioritizing code quality and system thinking along with DSA mastery.
Meesho Recruitment Process Overview
Online Assessment Rounds
- Conducted via: HackerRank, Codility, Codeforces
- Includes 2–3 coding challenges
- Time: 90 to 120 mins
- Auto-submission at deadline
Technical Interview Rounds
1-2 rounds covering:
- DSA problems
- Time-space optimization
- Edge cases + real-world scenario-based questions
- System design questions for senior roles
HR and Cultural Fit Interview
This is more about your thinking style, adaptability, and ownership than textbook answers.
Meesho Coding Questions Round Breakdown
Number of Questions and Duration
- 3–4 questions
- Time limit: 90–120 minutes
- Difficulty: Mix of Easy, Medium & Hard
Coding Platforms Used by Meesho
- HackerRank
- Meesho coding questions HackerEarth
- Meesho SDE coding questions HackerEarth
- Codeforces (Hiring Contests)
- Internal Meesho Platform
Scoring and Cutoffs
- Solve at least 2.5+ Meesho coding questions to get shortlisted
- Focus on code correctness, edge cases, and clean syntax
Most Asked Meesho Coding Questions and Answers
Question 1: Two Sum
Problem:
Find indices of two numbers that add up to the target.
var twoSum = function(nums, target) { const map = new Map(); for(let i = 0; i < nums.length; i++) { let complement = target - nums[i]; if(map.has(complement)) { return [map.get(complement), i]; } map.set(nums[i], i); } };
public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsKey(complement)) { return new int[] { map.get(complement), i }; } map.put(nums[i], i); } return new int[] {}; }
def twoSum(nums, target): hashmap = {} for i, num in enumerate(nums): diff = target - num if diff in hashmap: return [hashmap[diff], i] hashmap[num] = i
Same logic as Java/Python using a hash map.
Time Complexity: O(n)
Space Complexity: O(n)
Question 2: Best Time to Buy and Sell Stock
var maxProfit = function(prices) { let minPrice = Infinity; let maxProfit = 0; for(let price of prices) { minPrice = Math.min(minPrice, price); maxProfit = Math.max(maxProfit, price - minPrice); } return maxProfit; };
public int maxProfit(int[] prices) { int min = Integer.MAX_VALUE; int profit = 0; for (int price : prices) { min = Math.min(min, price); profit = Math.max(profit, price - min); } return profit; }
def maxProfit(prices): min_price = float('inf') max_profit = 0 for price in prices: min_price = min(min_price, price) max_profit = max(max_profit, price - min_price) return max_profit
Time Complexity: O(n)
Space Complexity: O(1)
Question 3: Valid Parentheses
var isValid = function(s) { const stack = []; const map = {')': '(', '}': '{', ']': '['}; for (let char of s) { if (char in map) { const top = stack.length ? stack.pop() : '#'; if (top !== map[char]) return false; } else { stack.push(char); } } return stack.length === 0; };
def isValid(s): stack = [] mapping = {')': '(', '}': '{', ']': '['} for char in s: if char in mapping: top = stack.pop() if stack else '#' if mapping[char] != top: return False else: stack.append(char) return not stack
public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (char c : s.toCharArray()) { if (c == '(') stack.push(')'); else if (c == '{') stack.push('}'); else if (c == '[') stack.push(']'); else if (stack.isEmpty() || stack.pop() != c) return false; } return stack.isEmpty(); }
Question 4: Power Function
var myPow = function(x, n) { if(n < 0) { x = 1 / x; n = -n; } let result = 1; while(n) { if(n % 2 !== 0) result *= x; x *= x; n = Math.floor(n / 2); } return result; };
def myPow(x, n): if n < 0: x = 1 / x n = -n result = 1 while n: if n % 2: result *= x x *= x n //= 2 return result
public double myPow(double x, long n) { if (n < 0) { x = 1 / x; n = -n; } double result = 1; while (n > 0) { if (n % 2 == 1) result *= x; x *= x; n /= 2; } return result; }
Question 5: Course Schedule (Cycle Detection)
var canFinish = function(numCourses, prerequisites) { const graph = new Map(); for (let i = 0; i < numCourses; i++) graph.set(i, []); for (let [a, b] of prerequisites) graph.get(a).push(b); const visiting = new Set(); const dfs = (course) => { if (visiting.has(course)) return false; if (graph.get(course).length === 0) return true; visiting.add(course); for (let pre of graph.get(course)) { if (!dfs(pre)) return false; } visiting.delete(course); graph.set(course, []); return true; } for (let i = 0; i < numCourses; i++) { if (!dfs(i)) return false; } return true; };
public boolean canFinish(int numCourses, int[][] prerequisites) { Map<Integer, List<Integer>> graph = new HashMap<>(); for (int i = 0; i < numCourses; i++) graph.put(i, new ArrayList<>()); for (int[] pre : prerequisites) graph.get(pre[0]).add(pre[1]); Set<Integer> visiting = new HashSet<>(); for (int course = 0; course < numCourses; course++) { if (!dfs(course, graph, visiting)) return false; } return true; } private boolean dfs(int course, Map<Integer, List<Integer>> graph, Set<Integer> visiting) { if (visiting.contains(course)) return false; if (graph.get(course).isEmpty()) return true; visiting.add(course); for (int pre : graph.get(course)) { if (!dfs(pre, graph, visiting)) return false; } visiting.remove(course); graph.get(course).clear(); return true; }
def canFinish(numCourses, prerequisites): graph = {i: [] for i in range(numCourses)} for a, b in prerequisites: graph[a].append(b) visiting = set() def dfs(course): if course in visiting: return False if not graph[course]: return True visiting.add(course) for pre in graph[course]: if not dfs(pre): return False visiting.remove(course) graph[course] = [] return True return all(dfs(course) for course in range(numCourses))
Question 6: Counting the Number of 1’s in Binary
var countBits = function(n) { const dp = new Array(n + 1).fill(0); for (let i = 1; i <= n; i++) { dp[i] = dp[i >> 1] + (i & 1); } return dp; };
def countBits(n): dp = [0] * (n + 1) for i in range(1, n + 1): dp[i] = dp[i >> 1] + (i & 1) return dp
Question 7: Generate Parentheses
var generateParenthesis = function(n) { const res = []; const backtrack = (str, open, close) => { if (str.length === n * 2) { res.push(str); return; } if (open < n) backtrack(str + '(', open + 1, close); if (close < open) backtrack(str + ')', open, close + 1); }; backtrack('', 0, 0); return res; };
public List<String> generateParenthesis(int n) { List<String> res = new ArrayList<>(); backtrack(res, "", 0, 0, n); return res; } private void backtrack(List<String> res, String str, int open, int close, int max) { if (str.length() == max * 2) { res.add(str); return; } if (open < max) backtrack(res, str + "(", open + 1, close, max); if (close < open) backtrack(res, str + ")", open, close + 1, max); }
def generateParenthesis(n): res = [] def backtrack(s='', left=0, right=0): if len(s) == 2 * n: res.append(s) return if left < n: backtrack(s + '(', left + 1, right) if right < left: backtrack(s + ')', left, right + 1) backtrack() return res
Question 8: LRU Cache
class LRUCache { constructor(capacity) { this.capacity = capacity; this.cache = new Map(); } get(key) { if (!this.cache.has(key)) return -1; const value = this.cache.get(key); this.cache.delete(key); this.cache.set(key, value); return value; } put(key, value) { if (this.cache.has(key)) { this.cache.delete(key); } this.cache.set(key, value); if (this.cache.size > this.capacity) { const firstKey = this.cache.keys().next().value; this.cache.delete(firstKey); } } }
from collections import OrderedDict class LRUCache: def __init__(self, capacity: int): self.cache = OrderedDict() self.capacity = capacity def get(self, key: int) -> int: if key not in self.cache: return -1 self.cache.move_to_end(key) return self.cache[key] def put(self, key: int, value: int) -> None: 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)
Question 9: Encode and Decode Strings
class Codec { encode(strs) { return strs.map(s => `${s.length}#${s}`).join(''); } decode(s) { const res = []; let i = 0; while (i < s.length) { let j = i; while (s[j] !== '#') j++; const length = parseInt(s.slice(i, j)); res.push(s.slice(j + 1, j + 1 + length)); i = j + 1 + length; } return res; } }
class Codec: def encode(self, strs): return ''.join(f'{len(s)}#{s}' for s in strs) def decode(self, s): res, i = [], 0 while i < len(s): j = i while s[j] != '#': j += 1 length = int(s[i:j]) res.append(s[j+1: j+1+length]) i = j + 1 + length return res
Question 10: Kth Largest Element in an Array
var findKthLargest = function(nums, k) { nums.sort((a, b) => b - a); return nums[k - 1]; };
import heapq def findKthLargest(nums, k): return heapq.nlargest(k, nums)[-1]
Easy Level Meesho Coding Questions
1. Reverse a Linked List
def reverseList(head): prev = None while head: next_node = head.next head.next = prev prev = head head = next_node return prev
2. Find Missing Number in Array
def missingNumber(nums): n = len(nums) return n * (n + 1) // 2 - sum(nums)
Medium Level Meesho Coding Questions
3. Longest Substring Without Repeating Characters
def lengthOfLongestSubstring(s): seen = {} l = 0 max_len = 0 for r in range(len(s)): if s[r] in seen and seen[s[r]] >= l: l = seen[s[r]] + 1 seen[s[r]] = r max_len = max(max_len, r - l + 1) return max_len
4. LRU Cache Implementation
Use OrderedDict or a custom DLL + Hashmap for optimal results.
Hard Level Meesho Coding Questions
5. Merge k Sorted Lists
Use MinHeap (heapq in Python) for optimal merging.
6. Word Break II
Use DFS with memoization to avoid Time Limit Exceeded (TLE).
Meesho DSA Concepts to Master
- Arrays and Strings – Sliding Window, Prefix Sum, Kadane’s
- HashMaps/Sets – Frequency counting, Two-sum variants
- Trees/Graphs – BFS, DFS, Topological Sort
- Dynamic Programming – Knapsack, Tabulation, Memoization
- Recursion/Backtracking – Subsets, N-Queens, Word Search
Meesho Coding Interview Tips
Time Management
- Read all questions at the start
- Attempt easiest first
- Allocate time wisely – max 20 mins per question
Problem-Solving Approach
- Clarify inputs/outputs
- Write pseudocode
- Dry-run with sample inputs
Mistakes to Avoid
- Skipping edge cases
- Blindly jumping into code
- Over-optimization early on
Tools & Resources to Practice
Meesho SDE 1 Interview Experience LeetCode – Meesho Company Tag–
InterviewBit – Meesho Archives
Codeforces Meesho Hiring Contests
Books
Cracking the Coding Interview – Gayle Laakmann McDowell
Elements of Programming Interviews
DSA Made Easy – Narasimha Karumanchi
Mock Interviews
- Pramp
- InterviewBuddy
- Reddit Threads: r/cscareerquestionsIN
Real Candidate Experiences
Insights from Meesho Interviewees
“The interview was intense but fair. I got asked to debug and optimize my solution live. They loved clean code.”
– Ankita S., SWE Intern 2024
Common Pitfalls
- Neglecting System Design
- Not optimizing after brute force
- Forgetting test cases
Final Week Preparation Strategy
Day 1–3: DSA concepts + solve company-tagged questions
Day 4–5: Attempt Meesho-level mocks
Day 6: Revise behavioral Qs + resume projects
Day 7: REST — don’t burn out!
FAQs
Is Meesho harder than other product companies?
It’s challenging but balanced. Expect intense focus on logic and culture fit.
How many rounds are there in Meesho coding interviews?
Typically 3–4: OA + 2 Tech + 1 HR/Cultural Fit.
What language should I use in Meesho coding tests?
C++, Java, or Python. Choose the one you’re strongest in.
Does Meesho allow open-book tests?
No, it’s a closed-book, time-bound, and monitored test.
Can freshers crack Meesho coding interviews?
Yes! Many freshers make it with focused prep, structured practice and with the list of our Meesho interview questions for freshers
Conclusion
The Meesho coding interview process in 2025 demands preparation, perseverance, and problem-solving under pressure. But if you’re clear on your concepts, consistent in your practice, and confident in your delivery—you can absolutely crack it.
Remember: It’s not just about solving problems—it’s about how you think, communicate, and adapt.
Pro Tip: Bookmark this blog and set a goal: solve 100+ Meesho Coding questions before your interview date.
Want more guides like this? Stay tuned on ccodelearner.
Meesho coding questions and answers pdf