Skip to main content

Data Structures & Algorithms Interview Questions

Review this list of 271 Data Structures & Algorithms interview questions and answers verified by hiring managers and candidates.
  • Google logoAsked at Google 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Visa logoAsked at Visa 
    1 answer

    "// Helper function to calculate the Euclidean distance between two points function distance(p1, p2) { return Math.sqrt(Math.pow(p1[0] - p2[0], 2) + Math.pow(p1[1] - p2[1], 2)); } // A helper function to find the closest pair in a given set of points within the strip function closestPairInStrip(strip, d) { let minDist = d; // Start with the current minimum distance strip.sort((a, b) => a[1] - b[1]); // Sort the strip by y-coordinate for (let i = 0; i < strip.length; i++) { "

    Vishnu V. - "// Helper function to calculate the Euclidean distance between two points function distance(p1, p2) { return Math.sqrt(Math.pow(p1[0] - p2[0], 2) + Math.pow(p1[1] - p2[1], 2)); } // A helper function to find the closest pair in a given set of points within the strip function closestPairInStrip(strip, d) { let minDist = d; // Start with the current minimum distance strip.sort((a, b) => a[1] - b[1]); // Sort the strip by y-coordinate for (let i = 0; i < strip.length; i++) { "See full answer

    Machine Learning Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    Add answer
    Video answer for 'Find the common ancestors in a tree.'
    Machine Learning Engineer
    Data Structures & Algorithms
    +1 more
  • Peloton logoAsked at Peloton 
    2 answers

    "Determine the requirements Perform basic checks on the frontend before submitting to the server Length Check for invalid or required characters Client-side validation messaging Perform more advanced checks on the server if required Does the password include the user's name, etc Handle server-side validation messaging"

    Casey C. - "Determine the requirements Perform basic checks on the frontend before submitting to the server Length Check for invalid or required characters Client-side validation messaging Perform more advanced checks on the server if required Does the password include the user's name, etc Handle server-side validation messaging"See full answer

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

  • Add answer
    Video answer for 'Calculate the minimum number of turns required to open a lock.'
    Data Structures & Algorithms
    Coding
  • "def findAlibaba(countOfRooms, strategy): #countofrooms: num rooms #listRooms rooms to look for alibabba possiblePlaces = [] #initialize rooms for i in range(countOfRooms): possiblePlaces.append(True) for i in range(len(strategy)): roomToCheck = strategy[i] #Room is marked as unavailable possiblePlaces[roomToCheck] = False #Next day calculatins nextDayPlaces = [] for j in range(countOfRooms): nextDayPla"

    JOBHUNTER - "def findAlibaba(countOfRooms, strategy): #countofrooms: num rooms #listRooms rooms to look for alibabba possiblePlaces = [] #initialize rooms for i in range(countOfRooms): possiblePlaces.append(True) for i in range(len(strategy)): roomToCheck = strategy[i] #Room is marked as unavailable possiblePlaces[roomToCheck] = False #Next day calculatins nextDayPlaces = [] for j in range(countOfRooms): nextDayPla"See full answer

    Engineering Manager
    Data Structures & Algorithms
    +1 more
  • Goldman Sachs logoAsked at Goldman Sachs 
    1 answer

    "I solved it using recursion and then memoization. Used Dynamic programming approach"

    Ravi teja N. - "I solved it using recursion and then memoization. Used Dynamic programming approach"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Add answer
    Frontend Engineer
    Data Structures & Algorithms
    +1 more
  • 2 answers

    " function diffBetweenTwoStrings(source, target) { /** @param source: string @param target: string @return: string[] */ let dp = new Array(source.length+1).fill().map(() => Array(target.length+1).fill(0)) for (let i = source.length; i>= 0; i--) { for (let j = target.length; j>= 0; j--) { if (i === source.length) { dpi = target.length - j } else if (j === target.length) { dpi = sou"

    Matthew K. - " function diffBetweenTwoStrings(source, target) { /** @param source: string @param target: string @return: string[] */ let dp = new Array(source.length+1).fill().map(() => Array(target.length+1).fill(0)) for (let i = source.length; i>= 0; i--) { for (let j = target.length; j>= 0; j--) { if (i === source.length) { dpi = target.length - j } else if (j === target.length) { dpi = sou"See full answer

    Data Structures & Algorithms
    Coding
  • Meta logoAsked at Meta 
    Add answer
    Machine Learning Engineer
    Data Structures & Algorithms
    +1 more
  • Amazon logoAsked at Amazon 
    3 answers

    "Use a BFS"

    Kwaku K. - "Use a BFS"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Flatiron Health logoAsked at Flatiron Health 
    1 answer
    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Salesforce logoAsked at Salesforce 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Apple logoAsked at Apple 
    9 answers
    +5

    "Make current as root. 2 while current is not null, if p and q are less than current, go left. If p and q are greater than current, go right. else return current. return null"

    Vaibhav D. - "Make current as root. 2 while current is not null, if p and q are less than current, go left. If p and q are greater than current, go right. else return current. return null"See full answer

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

    "Construct a min-heap either inplace, or by making a copy of the array and then applying heapify on that copy. This is done in O(n) time. Maintain two zero-initialised variables - sum and count. Keep popping off the heap while sum < k, and update count. In the worst case you will have to do n pops, and each pop is O(log n), so the algorithm would take O(n log n) in total. Space complexity depends on whether you're allowed to modify inplace or not, so either O(1) or O(n) respectively."

    Anonymous Wolf - "Construct a min-heap either inplace, or by making a copy of the array and then applying heapify on that copy. This is done in O(n) time. Maintain two zero-initialised variables - sum and count. Keep popping off the heap while sum < k, and update count. In the worst case you will have to do n pops, and each pop is O(log n), so the algorithm would take O(n log n) in total. Space complexity depends on whether you're allowed to modify inplace or not, so either O(1) or O(n) respectively."See full answer

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

    "dp"

    Brajesh J. - "dp"See full answer

    Data Structures & Algorithms
    Coding
  • Salesforce logoAsked at Salesforce 
    2 answers

    "Bitshift the number to the right and keep track of the 1's you encounter. If you bitshift it completely and only encounter one 1, it is a power of two."

    Nils G. - "Bitshift the number to the right and keep track of the 1's you encounter. If you bitshift it completely and only encounter one 1, it is a power of two."See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • DocuSign logoAsked at DocuSign 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Backend Engineer
    Data Structures & Algorithms
    +1 more
Showing 181-200 of 271