Salesforce Interview Experience
Real experiences. Read Experiences →
Salesforce coding interview questions with solutions. Practice DSA problems asked in Salesforce SWE interviews 2025.
Practice 25+ Salesforce coding interview questions with solutions. Salesforce focuses on CRM-domain problems and clean code.
def two_sum(nums, target): seen = {} for i, num in enumerate(nums): complement = target - num if complement in seen: return [seen[complement], i] seen[num] = i return []def is_valid(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 stackdef merge(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 mergedfrom collections import OrderedDict
class LRUCache: def __init__(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)from collections import defaultdict
def group_anagrams(strs): anagrams = defaultdict(list) for s in strs: key = ''.join(sorted(s)) anagrams[key].append(s) return list(anagrams.values())from collections import deque
def level_order(root): if not root: return [] result = [] queue = deque([root]) while queue: level = [] for _ in range(len(queue)): node = queue.popleft() level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) result.append(level) return resultdef num_islands(grid): if not grid: return 0 count = 0 rows, cols = len(grid), len(grid[0])
def dfs(r, c): if r < 0 or r >= rows or c < 0 or c >= cols or grid[r][c] == '0': return grid[r][c] = '0' dfs(r+1, c) dfs(r-1, c) dfs(r, c+1) dfs(r, c-1)
for r in range(rows): for c in range(cols): if grid[r][c] == '1': count += 1 dfs(r, c) return countdef coin_change(coins, amount): dp = [float('inf')] * (amount + 1) dp[0] = 0 for i in range(1, amount + 1): for coin in coins: if coin <= i: dp[i] = min(dp[i], dp[i - coin] + 1) return dp[amount] if dp[amount] != float('inf') else -1def max_subarray(nums): max_sum = current_sum = nums[0] for num in nums[1:]: current_sum = max(num, current_sum + num) max_sum = max(max_sum, current_sum) return max_sumSalesforce Interview Experience
Real experiences. Read Experiences →
Salesforce Preparation
Complete strategy. View Guide →
Practice these problems for Salesforce!
Last updated: February 2026