Skip to main content

Adobe Interview Questions

Review this list of 60 Adobe interview questions and answers verified by hiring managers and candidates.
  • "I would define success by first figuring out what our goal is by building the reels feature. Are we trying to increase DAUs? Increase enagement? Etc... For the sake of this, I think to define success it makes most sense to see if there is an increase in the amount of time users are spending on instagram. If time spent per user increases, it is likely that ad spend can increase and in turn increases instagram's reveue. We need to be sure that there are guard rails in place and make sure that by"

    Josh L. - "I would define success by first figuring out what our goal is by building the reels feature. Are we trying to increase DAUs? Increase enagement? Etc... For the sake of this, I think to define success it makes most sense to see if there is an increase in the amount of time users are spending on instagram. If time spent per user increases, it is likely that ad spend can increase and in turn increases instagram's reveue. We need to be sure that there are guard rails in place and make sure that by"See full answer

    Product Manager
    Analytical
  • Adobe logoAsked at Adobe 
    3 answers

    "This may seem tricky at first, but this is actually an Expansion problem, since we're expanding to a new market. The only difference is this is specifically for small businesses within that market. This is the formula you should use when tackling these types of interview questions: Ask clarifying questions Perform user analysis Market risk analysis State goals Perform channel analysis Prioritize growth channels Strategy Summarize Witho"

    Exponent - "This may seem tricky at first, but this is actually an Expansion problem, since we're expanding to a new market. The only difference is this is specifically for small businesses within that market. This is the formula you should use when tackling these types of interview questions: Ask clarifying questions Perform user analysis Market risk analysis State goals Perform channel analysis Prioritize growth channels Strategy Summarize Witho"See full answer

    Product Manager
    Product Strategy
  • Adobe logoAsked at Adobe 
    6 answers
    +3

    "public class sample { public int [] merge(int [] a, int [] b) { if(a == null || a.length == 0 || b == null || b.length == 0) return null; int i = 0, j = 0, index = -1; int [] merged = new int[a.length + b.length]; while (i < a.length && j < b.length) { if(a[i] < b[i]) merged[++index] = a[i++]; else merged[++index] = b[j++]; } while (i < a.length) { merged[++index] = a[i++]; } "

    Nikhil R. - "public class sample { public int [] merge(int [] a, int [] b) { if(a == null || a.length == 0 || b == null || b.length == 0) return null; int i = 0, j = 0, index = -1; int [] merged = new int[a.length + b.length]; while (i < a.length && j < b.length) { if(a[i] < b[i]) merged[++index] = a[i++]; else merged[++index] = b[j++]; } while (i < a.length) { merged[++index] = a[i++]; } "See full answer

    Software Engineer
    Data Structures & Algorithms
    +5 more
  • Adobe logoAsked at Adobe 
    10 answers
    +6

    "bool isValidBST(TreeNode* root, long min = LONGMIN, long max = LONGMAX){ if (root == NULL) return true; if (root->val val >= max) return false; return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max); } `"

    Alvaro R. - "bool isValidBST(TreeNode* root, long min = LONGMIN, long max = LONGMAX){ if (root == NULL) return true; if (root->val val >= max) return false; return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max); } `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    3 answers

    "I would start with the company vision then assuming we have more than one product team, craft the vision for the product through a collaboration of PMs and Tech leads, then based on that I will define the scope of each product team's milestones to achieve the product vision and go from both ends to fill the gap from what we already have and what needed to achieve the milestones."

    Seyed rasoul J. - "I would start with the company vision then assuming we have more than one product team, craft the vision for the product through a collaboration of PMs and Tech leads, then based on that I will define the scope of each product team's milestones to achieve the product vision and go from both ends to fill the gap from what we already have and what needed to achieve the milestones."See full answer

    Product Manager
    Behavioral
    +1 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Adobe logoAsked at Adobe 
    Add answer
    Software Engineer
    System Design
  • Adobe logoAsked at Adobe 
    13 answers
    +10

    "from typing import List def traprainwater(height: List[int]) -> int: if not height: return 0 l, r = 0, len(height) - 1 leftMax, rightMax = height[l], height[r] res = 0 while l < r: if leftMax < rightMax: l += 1 leftMax = max(leftMax, height[l]) res += leftMax - height[l] else: r -= 1 rightMax = max(rightMax, height[r]) "

    Anonymous Roadrunner - "from typing import List def traprainwater(height: List[int]) -> int: if not height: return 0 l, r = 0, len(height) - 1 leftMax, rightMax = height[l], height[r] res = 0 while l < r: if leftMax < rightMax: l += 1 leftMax = max(leftMax, height[l]) res += leftMax - height[l] else: r -= 1 rightMax = max(rightMax, height[r]) "See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    4 answers
    +1

    "static boolean sudokuSolve(char board) { return sudokuSolve(board, 0, 0); } static boolean sudokuSolve(char board, int r, int c) { if(c>=board[0].length) { r=r+1; c=0; } if(r>=board.length) return true; if(boardr=='.') { for(int num=1; num<=9; num++) { boardr=(char)('0' + num); if(isValidPosition(board, r, c)) { if(sudokuSolve(board, r, c+1)) return true; } boardr='.'; } } else { return sudokuSolve(board, r, c+1); } return false; } static boolean isValidPosition(char b"

    Divya R. - "static boolean sudokuSolve(char board) { return sudokuSolve(board, 0, 0); } static boolean sudokuSolve(char board, int r, int c) { if(c>=board[0].length) { r=r+1; c=0; } if(r>=board.length) return true; if(boardr=='.') { for(int num=1; num<=9; num++) { boardr=(char)('0' + num); if(isValidPosition(board, r, c)) { if(sudokuSolve(board, r, c+1)) return true; } boardr='.'; } } else { return sudokuSolve(board, r, c+1); } return false; } static boolean isValidPosition(char b"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    1 answer

    "When it comes to Metrics, I always think of one thing " What cannot be measured cannot be done". The product that I am managing goal is on enabling the products for our partners so that our partners can have a seamless experience of doing business with us which in turn will increase the revenue. The user segment for my product is mainly resellers who can resell the product to another customer so that the reach of the customers is more. The metrics which I am tracking are revenue, referrals, an"

    Tanu M. - "When it comes to Metrics, I always think of one thing " What cannot be measured cannot be done". The product that I am managing goal is on enabling the products for our partners so that our partners can have a seamless experience of doing business with us which in turn will increase the revenue. The user segment for my product is mainly resellers who can resell the product to another customer so that the reach of the customers is more. The metrics which I am tracking are revenue, referrals, an"See full answer

    Product Manager
    Analytical
    +1 more
  • Adobe logoAsked at Adobe 
    Add answer
    Product Manager
    Product Strategy
  • Adobe logoAsked at Adobe 

    Permutations

    IDE
    Medium
    4 answers
    +1

    "function permute(nums) { if (nums.length <= 1) { return [nums]; } const prevPermutations = permute(nums.slice(0, nums.length-1)); const currentNum = nums[nums.length-1]; const permutations = new Set(); for (let prev of prevPermutations) { for (let i=0; i < prev.length; i++) { permutations.add([...prev.slice(0, i), currentNum, ...prev.slice(i)]); } permutations.add([...prev, currentNum]); } return [...permutations]"

    Tiago R. - "function permute(nums) { if (nums.length <= 1) { return [nums]; } const prevPermutations = permute(nums.slice(0, nums.length-1)); const currentNum = nums[nums.length-1]; const permutations = new Set(); for (let prev of prevPermutations) { for (let i=0; i < prev.length; i++) { permutations.add([...prev.slice(0, i), currentNum, ...prev.slice(i)]); } permutations.add([...prev, currentNum]); } return [...permutations]"See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    Add answer
    Video answer for 'Solve John Conway's "Game of Life".'
    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Adobe logoAsked at Adobe 
    2 answers

    "func isMatch(text: String, pattern: String) -> Bool { // Convert strings to arrays for easier indexing let s = Array(text.characters) let p = Array(pattern.characters) guard !s.isEmpty && !p.isEmpty else { return true } // Create DP table: dpi represents if s[0...i-1] matches p[0...j-1] var dp = Array(repeating: Array(repeating: false, count: p.count + 1), count: s.count + 1) // Empty pattern matches empty string dp[0]["

    Reno S. - "func isMatch(text: String, pattern: String) -> Bool { // Convert strings to arrays for easier indexing let s = Array(text.characters) let p = Array(pattern.characters) guard !s.isEmpty && !p.isEmpty else { return true } // Create DP table: dpi represents if s[0...i-1] matches p[0...j-1] var dp = Array(repeating: Array(repeating: false, count: p.count + 1), count: s.count + 1) // Empty pattern matches empty string dp[0]["See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    1 answer

    "create a queue push all cells with 0 into queue Mark all 1s as unvisited (-1 or large value) Run BFS for each cell, explore 4 directions If neighbor is unvisited:distance = current + 1 push into queue "

    Areeba M. - "create a queue push all cells with 0 into queue Mark all 1s as unvisited (-1 or large value) Run BFS for each cell, explore 4 directions If neighbor is unvisited:distance = current + 1 push into queue "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +2 more
  • Adobe logoAsked at Adobe 
    2 answers

    "simply check its size if the size if the size is greater than n then yes it has duplicate"

    Kunal kumar S. - "simply check its size if the size if the size is greater than n then yes it has duplicate"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +2 more
  • Adobe logoAsked at Adobe 
    10 answers
    +7

    "function isPalindrome(s, start, end) { while (s[start] === s[end] && end >= start) { start++; end--; } return end <= start; } function longestPalindromicSubstring(s) { let longestPalindrome = ''; for (let i=0; i < s.length; i++) { let j = s.length-1; while (s[i] !== s[j] && i <= j) { j--; } if (s[i] === s[j]) { if (isPalindrome(s, i, j)) { const validPalindrome = s.substring(i, j+1"

    Tiago R. - "function isPalindrome(s, start, end) { while (s[start] === s[end] && end >= start) { start++; end--; } return end <= start; } function longestPalindromicSubstring(s) { let longestPalindrome = ''; for (let i=0; i < s.length; i++) { let j = s.length-1; while (s[i] !== s[j] && i <= j) { j--; } if (s[i] === s[j]) { if (isPalindrome(s, i, j)) { const validPalindrome = s.substring(i, j+1"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    Add answer
    BizOps & Strategy
    Behavioral
    +1 more
  • Adobe logoAsked at Adobe 
    1 answer

    "Leetcode 347: Heap + Hashtable Follow up question: create heap with the length of K instead of N (more time complexity but less space )"

    Chen J. - "Leetcode 347: Heap + Hashtable Follow up question: create heap with the length of K instead of N (more time complexity but less space )"See full answer

    Software Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    2 answers

    "import java.util.Arrays; import java.util.stream.Collectors; class Main { // Recursive function to print all combinations of numbers from \i\ to \n\ // having sum \n. The index\ denotes the next free slot in the output array \out\ public static void printCombinations(int i, int n, int[] out, int index) { // if the sum becomes n, print the combination if (n == 0) { System.out.println(Arrays.stream(out).limit(index) .boxed().collect(Collectors.toList())); } // start from the previous e"

    Relynn may silver B. - "import java.util.Arrays; import java.util.stream.Collectors; class Main { // Recursive function to print all combinations of numbers from \i\ to \n\ // having sum \n. The index\ denotes the next free slot in the output array \out\ public static void printCombinations(int i, int n, int[] out, int index) { // if the sum becomes n, print the combination if (n == 0) { System.out.println(Arrays.stream(out).limit(index) .boxed().collect(Collectors.toList())); } // start from the previous e"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    Add answer
    Video answer for 'Print all possible solutions to the N-Queens problem.'
    Data Engineer
    Data Structures & Algorithms
    +2 more
Showing 41-60 of 60
Exponent

Get updates in your inbox with the latest tips, job listings, and more.

Follow Us

Products
Courses
Interview Questions
Interview Experiences
Popular articles
Guides
Coaching
For Partners
Company
Exponent © 2026
Terms of Service | Privacy