Skip to main content

Adobe Machine Learning Engineer Interview Questions

Review this list of 35 Adobe Machine Learning Engineer interview questions and answers verified by hiring managers and candidates.
  • Adobe logoAsked at Adobe 
    43 answers
    Video answer for 'Edit distance'
    +35

    "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "

    叶 路. - "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    44 answers
    +39

    "Was this for an entry level engineer role?"

    Yeshwanth D. - "Was this for an entry level engineer role?"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    70 answers
    +60

    "I follow a variation of the RICE framework when prioritizing how I ship product features. I start by looking at: Reach: Because the customer segmentation across our product portfolio is so similar, I tend to hold a lot of weight on product features that will maximize our customer reach with a minimal LOE. Impact: After establishing which customer segments will benefit from the product feature, I determine the urgency and estimated impact on each customer segment based on customer i"

    Ashley C. - "I follow a variation of the RICE framework when prioritizing how I ship product features. I start by looking at: Reach: Because the customer segmentation across our product portfolio is so similar, I tend to hold a lot of weight on product features that will maximize our customer reach with a minimal LOE. Impact: After establishing which customer segments will benefit from the product feature, I determine the urgency and estimated impact on each customer segment based on customer i"See full answer

    Machine Learning Engineer
    Behavioral
    +10 more
  • Adobe logoAsked at Adobe 
    31 answers
    +26

    "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"

    Alfred O. - "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +6 more
  • Adobe logoAsked at Adobe 
    16 answers
    Video answer for 'Given an integer array nums and an integer k, return true if nums has a subarray of at least two elements whose sum is a multiple of k.'
    +12

    " def hasgoodsubarray(nums, k): if not nums: return False if k == 0: for i in range(len(nums)): if nums[i] == 0 and nums[i + 1] == 0: return True return False map = {0:-1} sum = 0 for i,val in enumerate(nums): sum += val rem = sum % k if rem in map: if i - map[rem] >= 2: return True else: map[rem] = i return False print(hasgoods"

    Abinash S. - " def hasgoodsubarray(nums, k): if not nums: return False if k == 0: for i in range(len(nums)): if nums[i] == 0 and nums[i + 1] == 0: return True return False map = {0:-1} sum = 0 for i,val in enumerate(nums): sum += val rem = sum % k if rem in map: if i - map[rem] >= 2: return True else: map[rem] = i return False print(hasgoods"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Adobe logoAsked at Adobe 
    4 answers
    +1

    " Compare alternate houses i.e for each house starting from the third, calculate the maximum money that can be stolen up to that house by choosing between: Skipping the current house and taking the maximum money stolen up to the previous house. Robbing the current house and adding its value to the maximum money stolen up to the house two steps back. package main import ( "fmt" ) // rob function calculates the maximum money a robber can steal func maxRob(nums []int) int { ln"

    VContaineers - " Compare alternate houses i.e for each house starting from the third, calculate the maximum money that can be stolen up to that house by choosing between: Skipping the current house and taking the maximum money stolen up to the previous house. Robbing the current house and adding its value to the maximum money stolen up to the house two steps back. package main import ( "fmt" ) // rob function calculates the maximum money a robber can steal func maxRob(nums []int) int { ln"See full answer

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

    "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."

    Gaston B. - "Use a representative of each, e.g. sort the string and add it to the value of a hashmap> where we put all the words that belong to the same anagram together."See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    34 answers
    +28

    "Two pointers sub-routine from typing import List def reverse_words(arr: List[str]) -> List[str]: size = len(arr) #reverse whole array reversesubarr(arr, 0, size-1) #reverse each word start, end = 0, 0 for i in range(size): if arr[i].isspace() or i == size-1: end = i-1 if i != size-1 else i reversesubarr(arr, start, end) start = i+1 return arr def reversesubarr(array, start, end): print(array, start,"

    Nicolás N. - "Two pointers sub-routine from typing import List def reverse_words(arr: List[str]) -> List[str]: size = len(arr) #reverse whole array reversesubarr(arr, 0, size-1) #reverse each word start, end = 0, 0 for i in range(size): if arr[i].isspace() or i == size-1: end = i-1 if i != size-1 else i reversesubarr(arr, start, end) start = i+1 return arr def reversesubarr(array, start, end): print(array, start,"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    69 answers
    Video answer for 'Move all zeros to the end of an array.'
    +64

    "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "

    Avon T. - "Initialize left pointer: Set a left pointer left to 0. Iterate through the array: Iterate through the array from left to right. If the current element is not 0, swap it with the element at the left pointer and increment left. Time complexity: O(n). The loop iterates through the entire array once, making it linear time. Space complexity: O(1). The algorithm operates in-place, modifying the input array directly without using additional data structures. "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    19 answers
    Video answer for 'Given stock prices for the next n days, how can you maximize your profit by buying or selling one share per day?'
    +14

    "public static int maxProfitGreedy(int[] stockPrices) { int maxProfit = 0; for(int i = 1; i todayPrice) { maxProfit += tomorrowPrice - todayPrice; } } return maxProfit; } "

    Laksitha R. - "public static int maxProfitGreedy(int[] stockPrices) { int maxProfit = 0; for(int i = 1; i todayPrice) { maxProfit += tomorrowPrice - todayPrice; } } return maxProfit; } "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    66 answers
    Video answer for 'Product of Array Except Self'
    +60

    "If 0's aren't a concern, couldn't we just multiply all numbers. and then divide product by each number in the list ? if there's more than one zero, then we just return an array of 0s if there's one zero, then we just replace 0 with product and rest 0s. what am i missing?"

    Sachin R. - "If 0's aren't a concern, couldn't we just multiply all numbers. and then divide product by each number in the list ? if there's more than one zero, then we just return an array of 0s if there's one zero, then we just replace 0 with product and rest 0s. what am i missing?"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    34 answers
    +30

    " from typing import List one pass O(n) def find_duplicates(arr1: List[int], arr2: List[int]) -> List[int]: duplicates = [] i1 = i2 = 0 while i1 < len(arr1) and i2 < len(arr2): if arr1[i1] == arr2[i2]: duplicates.append(arr1[i1]) i2 += 1 i1 += 1 return duplicates debug your code below print(find_duplicates([1, 2, 3, 5, 6, 7], [3, 6, 7, 8, 20])) `"

    Rick E. - " from typing import List one pass O(n) def find_duplicates(arr1: List[int], arr2: List[int]) -> List[int]: duplicates = [] i1 = i2 = 0 while i1 < len(arr1) and i2 < len(arr2): if arr1[i1] == arr2[i2]: duplicates.append(arr1[i1]) i2 += 1 i1 += 1 return duplicates debug your code below print(find_duplicates([1, 2, 3, 5, 6, 7], [3, 6, 7, 8, 20])) `"See full answer

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

    "function twoSum(nums, target) { let complements = new Map(); for (let i = 0; i < nums.length; i++) { let diff = target - nums[i]; if (complements.has(diff)) { return [complements.get(diff), i]; } complements.set(nums[i], i); } return []; } console.log(twoSum([2, 7, 11, 15], 9)); `"

    Jean-pierre C. - "function twoSum(nums, target) { let complements = new Map(); for (let i = 0; i < nums.length; i++) { let diff = target - nums[i]; if (complements.has(diff)) { return [complements.get(diff), i]; } complements.set(nums[i], i); } return []; } console.log(twoSum([2, 7, 11, 15], 9)); `"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +5 more
  • Adobe logoAsked at Adobe 
    Add answer
    Video answer for 'Find the median of two sorted arrays.'
    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    18 answers
    Video answer for 'Given an nxn grid of 1s and 0s, return the number of islands in the input.'
    +15

    " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "

    Rick E. - " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    23 answers
    Video answer for 'Find a triplet in an array with a given sum.'
    +17

    " import java.util.*; class Solution { // Time Complexity: O(n^2) // Space Complexity: O(n) public static List> threeSum(int[] nums) { // Ensure that the array is sorted first Arrays.sort(nums); // Create the results list to return List> results = new ArrayList(); // Iterate over the length of nums for (int i = 0; i < nums.length-2; i++) { // We will have the first number in"

    Victor O. - " import java.util.*; class Solution { // Time Complexity: O(n^2) // Space Complexity: O(n) public static List> threeSum(int[] nums) { // Ensure that the array is sorted first Arrays.sort(nums); // Create the results list to return List> results = new ArrayList(); // Iterate over the length of nums for (int i = 0; i < nums.length-2; i++) { // We will have the first number in"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    12 answers
    +8

    "function findPrimes(n) { if (n < 2) return []; const primes = []; for (let i=2; i <= n; i++) { const half = Math.floor(i/2); let isPrime = true; for (let prime of primes) { if (i % prime === 0) { isPrime = false; break; } } if (isPrime) { primes.push(i); } } return primes; } `"

    Tiago R. - "function findPrimes(n) { if (n < 2) return []; const primes = []; for (let i=2; i <= n; i++) { const half = Math.floor(i/2); let isPrime = true; for (let prime of primes) { if (i % prime === 0) { isPrime = false; break; } } if (isPrime) { primes.push(i); } } return primes; } `"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    14 answers
    Video answer for 'Generate Parentheses'
    +9

    " O(n) time from typing import List def generate_parentheses(n: int): res = [] def generate(buf, opened, closed): if len(buf) == 2 * n: if n != 0: res.append(buf) return if opened < n: generate( buf + "(", opened + 1, closed) if closed < opened: generate(buf + ")", opened, closed + 1) generate("", 0, 0) return res debug your code below print(generate_parentheses(1"

    Rick E. - " O(n) time from typing import List def generate_parentheses(n: int): res = [] def generate(buf, opened, closed): if len(buf) == 2 * n: if n != 0: res.append(buf) return if opened < n: generate( buf + "(", opened + 1, closed) if closed < opened: generate(buf + ")", opened, closed + 1) generate("", 0, 0) return res debug your code below print(generate_parentheses(1"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
  • Adobe logoAsked at Adobe 
    2 answers
    Video answer for 'Given the root of a binary tree of integers, return the maximum path sum.'

    "\# Definition for a binary tree node. class TreeNode: def init(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def maxPathSum(self, root: TreeNode) -> int: self.max_sum = float('-inf')"

    Jerry O. - "\# Definition for a binary tree node. class TreeNode: def init(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def maxPathSum(self, root: TreeNode) -> int: self.max_sum = float('-inf')"See full answer

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

    "def calc(expr): ans = eval(expr) return ans your code goes debug your code below print(calc("1 + 1")) `"

    Sarvesh G. - "def calc(expr): ans = eval(expr) return ans your code goes debug your code below print(calc("1 + 1")) `"See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +3 more
Showing 1-20 of 35
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