Skip to main content

Apple Interview Questions

Review this list of 172 Apple interview questions and answers verified by hiring managers and candidates.
  • Apple logoAsked at Apple 
    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 prefix = 0 table = set([0]) for i in range(len(nums)): prefix += nums[i] if prefix % k in table: return True table.add(prefix % k) return False `"

    Wayne W. - "def hasgoodsubarray(nums, k): if not nums: return False prefix = 0 table = set([0]) for i in range(len(nums)): prefix += nums[i] if prefix % k in table: return True table.add(prefix % k) return False `"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Apple logoAsked at Apple 
    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

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

    "Situation - A time I dealt with conflict while on a team was while I was working at Shopify on physical and digital gift card refund point of sale solutions. The situation was that we were dealing with complex technical constraints including not changing particular UI components behavior to act as they should be intended. On the refund screen, the existing design was using a toggle on the same screen to bring up a modal for gift card selection to either select digital or physical options. Thi"

    Ben G. - "Situation - A time I dealt with conflict while on a team was while I was working at Shopify on physical and digital gift card refund point of sale solutions. The situation was that we were dealing with complex technical constraints including not changing particular UI components behavior to act as they should be intended. On the refund screen, the existing design was using a toggle on the same screen to bring up a modal for gift card selection to either select digital or physical options. Thi"See full answer

    Engineering Manager
    Behavioral
    +5 more
  • Apple logoAsked at Apple 
    16 answers
    Video answer for 'How would you improve Google Assistant?'
    +11

    "Clarification: By Improvement we could delve into either improving Monetization, User Engagement, Experience or Retention. Project Goal: In particular letz focus on improving User Engagement/Experience which may also pave way into monetizing - cuz the way I see it is to put out multiple configurations /packages in the market, and allow users to choose and pay for the services. Its as simple as hiring a full time assistant vs part time. U pay for the service rendered. **Product Vision"

    Bk - "Clarification: By Improvement we could delve into either improving Monetization, User Engagement, Experience or Retention. Project Goal: In particular letz focus on improving User Engagement/Experience which may also pave way into monetizing - cuz the way I see it is to put out multiple configurations /packages in the market, and allow users to choose and pay for the services. Its as simple as hiring a full time assistant vs part time. U pay for the service rendered. **Product Vision"See full answer

    Customer Success Manager
    Product Design
    +1 more
  • Apple logoAsked at Apple 
    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

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

  • Apple logoAsked at Apple 
    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

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Apple logoAsked at Apple 
    7 answers
    +4

    "Situation. Initially, my team consisted of young guys who were hired by team leaders based on hardskills. Previously, the company had just begun the transition from a process-based to a product-based approach. In the process of searching and selecting candidates, the interests of the team and the product owner were not taken into account. The candidate didn't pass a behavioral interview on soft skills. Thus, the team consisted of diverse and talented guys, but not very interested in fast wor"

    Anna D. - "Situation. Initially, my team consisted of young guys who were hired by team leaders based on hardskills. Previously, the company had just begun the transition from a process-based to a product-based approach. In the process of searching and selecting candidates, the interests of the team and the product owner were not taken into account. The candidate didn't pass a behavioral interview on soft skills. Thus, the team consisted of diverse and talented guys, but not very interested in fast wor"See full answer

    Software Engineer
    Behavioral
    +4 more
  • Apple logoAsked at Apple 
    12 answers
    Video answer for 'How do you coach and develop your engineering team?'
    +9

    "Too much talk nothing concrete to know about the person that I am interviewing."

    Vikas T. - "Too much talk nothing concrete to know about the person that I am interviewing."See full answer

    Engineering Manager
    Behavioral
    +1 more
  • Apple logoAsked at Apple 
    3 answers

    "Situation : During my time in my previous company, I was leading a program which involved a cross-functional team. The project was to migrate all the legacy servers to Azure and had a tight deadline of 4 months. Each team had distinct goals and responsibilites to be delivered Task : My task was to collaborate with the multi regional team and ensure a smooth delivery within the defined budget and schedule. Action : I believe communication is the key to handle a cross-functional team"

    Oriole O. - "Situation : During my time in my previous company, I was leading a program which involved a cross-functional team. The project was to migrate all the legacy servers to Azure and had a tight deadline of 4 months. Each team had distinct goals and responsibilites to be delivered Task : My task was to collaborate with the multi regional team and ensure a smooth delivery within the defined budget and schedule. Action : I believe communication is the key to handle a cross-functional team"See full answer

    Engineering Manager
    Behavioral
    +2 more
  • Apple logoAsked at Apple 
    13 answers
    Video answer for 'Design a typeahead box for a search engine.'
    +5

    "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"

    Aymen D. - "It would have been more interesting to focus on the system design rather than the Trie DS, Interviewee could have just mentioned the Trie and passed to things more important. Interviewee should have focused on the factors on which he wants to scale the API servers, popularity of the query parts ? region may be ? A hash of many factors ? Caches should have definitely be discussed, Cache eviction policies, Cache invalidation managements... Interviewee should have mentioned which kind of API pro"See full answer

    Software Engineer
    System Design
    +1 more
  • Apple logoAsked at Apple 
    2 answers

    "\# An program that prints out the peak elements in a list of integers. Pseudocode: 1. Define a function that takes a list of integers as input. 2. Initialize an empty list to store the peak elements. 3. Loop through the list of integers. 4. For each element, check if it is greater than its neighbors. 5. If it is, add it to the list of peak elements. 6. Return the list of peak elements. def findpeakelements(nums): if not nums: return [] peaks = [] n = len(nums"

    Frederick K. - "\# An program that prints out the peak elements in a list of integers. Pseudocode: 1. Define a function that takes a list of integers as input. 2. Initialize an empty list to store the peak elements. 3. Loop through the list of integers. 4. For each element, check if it is greater than its neighbors. 5. If it is, add it to the list of peak elements. 6. Return the list of peak elements. def findpeakelements(nums): if not nums: return [] peaks = [] n = len(nums"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Apple logoAsked at Apple 
    5 answers
    +2

    "To answer this, I will focus my efforts on explaining the most common type of API used in most modern software development applications - the REST API. For the purpose of simplicity, I will also keep the topics of Authorization and Authentication out of the mix. In essence, an API is a group of logic that takes in a specific set of inputs and responds with a specific set of outputs. This is analogous to going to a drive-thru and placing an order for a meal. When you give an API a bunch of"

    Pathworks P. - "To answer this, I will focus my efforts on explaining the most common type of API used in most modern software development applications - the REST API. For the purpose of simplicity, I will also keep the topics of Authorization and Authentication out of the mix. In essence, an API is a group of logic that takes in a specific set of inputs and responds with a specific set of outputs. This is analogous to going to a drive-thru and placing an order for a meal. When you give an API a bunch of"See full answer

    Software Engineer
    System Design
    +4 more
  • Apple logoAsked at Apple 
    24 answers
    +21

    "function isValid(s) { const stack = []; for (let i=0; i < s.length; i++) { const char = s.charAt(i); if (['(', '{', '['].includes(char)) { stack.push(char); } else { const top = stack.pop(); if ((char === ')' && top !== '(') || (char === '}' && top !== '{') || (char === ']' && top !== '[')) { return false; } } } return stack.length === 0"

    Tiago R. - "function isValid(s) { const stack = []; for (let i=0; i < s.length; i++) { const char = s.charAt(i); if (['(', '{', '['].includes(char)) { stack.push(char); } else { const top = stack.pop(); if ((char === ')' && top !== '(') || (char === '}' && top !== '{') || (char === ']' && top !== '[')) { return false; } } } return stack.length === 0"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Apple logoAsked at Apple 
    Add answer
    Video answer for 'Describe an experience working in a cross-functional team.'
    Product Manager
    Behavioral
    +4 more
  • Apple logoAsked at Apple 
    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
  • Apple logoAsked at Apple 
    Add answer
    Product Manager
    Behavioral
  • Apple logoAsked at Apple 
    3 answers

    "General response: Apple’s approach to delivering seamless, personalized experiences through data, while upholding a strong ethical commitment to privacy, resonates with my own values. I want to contribute to projects that optimize user engagement and create meaningful interactions on a large scale, and I believe Apple is the ideal place to make that impact. Tailored to the team: Talk about the product, its impact internally, and the customer."

    Arshia I. - "General response: Apple’s approach to delivering seamless, personalized experiences through data, while upholding a strong ethical commitment to privacy, resonates with my own values. I want to contribute to projects that optimize user engagement and create meaningful interactions on a large scale, and I believe Apple is the ideal place to make that impact. Tailored to the team: Talk about the product, its impact internally, and the customer."See full answer

    Technical Program Manager
    Behavioral
    +3 more
  • Apple logoAsked at Apple 
    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

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Apple logoAsked at Apple 
    9 answers
    +6

    "DFS with check of an already seen node in the graph would work from collections import deque, defaultdict from typing import List def iscourseloopdfs(idcourse: int, graph: defaultdict[list]) -> bool: stack = deque([(id_course)]) seen_courses = set() while stack: print(stack) curr_course = stack.pop() if currcourse in seencourses: return True seencourses.add(currcourse) for dependency in graph[curr_course]: "

    Gabriele G. - "DFS with check of an already seen node in the graph would work from collections import deque, defaultdict from typing import List def iscourseloopdfs(idcourse: int, graph: defaultdict[list]) -> bool: stack = deque([(id_course)]) seen_courses = set() while stack: print(stack) curr_course = stack.pop() if currcourse in seencourses: return True seencourses.add(currcourse) for dependency in graph[curr_course]: "See full answer

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

    " The Situation A few months ago, our trading platform started experiencing significant latency issues during peak trading hours. This latency was affecting our ability to process real-time market data and execute trades efficiently, potentially leading to substantial financial losses and missed opportunities. Identifying the Problem The first step was to identify the root cause of the latency. I organized a team meeting with our data engineers, DevOps, and network specialists to gather"

    Scott S. - " The Situation A few months ago, our trading platform started experiencing significant latency issues during peak trading hours. This latency was affecting our ability to process real-time market data and execute trades efficiently, potentially leading to substantial financial losses and missed opportunities. Identifying the Problem The first step was to identify the root cause of the latency. I organized a team meeting with our data engineers, DevOps, and network specialists to gather"See full answer

    Engineering Manager
    Behavioral
    +3 more
Showing 21-40 of 172