Skip to main content

Meta Software Engineer Interview Questions

Review this list of 126 Meta Software Engineer interview questions and answers verified by hiring managers and candidates.
  • Meta logoAsked at Meta 
    4 answers
    +1

    "Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn) Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn) Approach 3: Quickselect. Time complexity O(n) I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"

    GalacticInterviewer - "Approach 1: Use sorting and return the kth largest element from the sorted list. Time complexity: O(nlogn) Approach 2: Use max heap and then select the kth largest element. time complexity: O(n+logn) Approach 3: Quickselect. Time complexity O(n) I explained my interviewer the 3 approaches. He told me to solve in a naive manner. Used Approach 1 had some time left so coded approach 3 also The average time complexity of Quickselect is O(n), making it very efficient for its purpose. However, in"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Meta logoAsked at Meta 
    13 answers
    Video answer for 'Merge k sorted linked lists.'
    +7

    "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"

    Guilherme F. - "A much better solution than the one in the article, below: It looks like the ones writing articles here in Javascript do not understand the time/space complexity of javascript methods. shift, splice, sort, etc... In the solution article you have a shift and a sort being done inside a while, that is, the multiplication of Ns. My solution, below, iterates through the list once and then sorts it, separately. It´s O(N+Log(N)) class ListNode { constructor(val = 0, next = null) { th"See full answer

    Software Engineer
    Data Structures & Algorithms
    +4 more
  • Meta logoAsked at Meta 
    21 answers
    +17

    "static int[] sortKMessedArray(int[] arr, int k) { // your code goes here int len = arr.length; for(int i=1;i-1 && arr[j]>key){ arr[j+1] = arr[j]; j--; if(moves >= k){ break; } else { moves++; } } arr[j+1] = key; } return arr; } `"

    Sam J. - "static int[] sortKMessedArray(int[] arr, int k) { // your code goes here int len = arr.length; for(int i=1;i-1 && arr[j]>key){ arr[j+1] = arr[j]; j--; if(moves >= k){ break; } else { moves++; } } arr[j+1] = key; } return arr; } `"See full answer

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

    "I'm currently a School Bus Monitor at First Student, I make sure that the students on the bus are seated down, making sure they are safe during the bus ride. Sometimes depending on the day they may need me to help do a wheelchair so I sometimes help the driver out with making sure the wheelchair is safely secure, hooking up the 4 hooks on the wheelchair, putting the lap belt on the student and also making sure the student feels comfortable during the bus ride. After we finished dropping off our"

    Amparo L. - "I'm currently a School Bus Monitor at First Student, I make sure that the students on the bus are seated down, making sure they are safe during the bus ride. Sometimes depending on the day they may need me to help do a wheelchair so I sometimes help the driver out with making sure the wheelchair is safely secure, hooking up the 4 hooks on the wheelchair, putting the lap belt on the student and also making sure the student feels comfortable during the bus ride. After we finished dropping off our"See full answer

    Software Engineer
    Behavioral
    +4 more
  • Meta logoAsked at Meta 
    3 answers

    "I did a design similar to one of the videos you have about designing youtube, but feedback said that I failed on discussions on key details of the design, also failed on the gathering requirements phase."

    Emilio T. - "I did a design similar to one of the videos you have about designing youtube, but feedback said that I failed on discussions on key details of the design, also failed on the gathering requirements phase."See full answer

    Software Engineer
    System Design
    +2 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Meta logoAsked at Meta 
    3 answers

    "Microservices are small parts of a application we can deploy them seprately and use them as a application feature."

    Anonymous Salamander - "Microservices are small parts of a application we can deploy them seprately and use them as a application feature."See full answer

    Software Engineer
    System Design
  • Meta logoAsked at Meta 
    1 answer

    "Given a Binary Tree, the task is to find its vertical traversal starting from the leftmost level to the rightmost level. If multiple nodes pass through a vertical line, they should be printed as they appear in the level order traversal of the tree. The idea is to traverse the tree using dfs and maintain a hashmap to store nodes at each horizontal distance (HD) from the root. Starting with an HD of 0 at the root, the HD is decremented for left children and incremented for right children. As we"

    Anonymous Mongoose - "Given a Binary Tree, the task is to find its vertical traversal starting from the leftmost level to the rightmost level. If multiple nodes pass through a vertical line, they should be printed as they appear in the level order traversal of the tree. The idea is to traverse the tree using dfs and maintain a hashmap to store nodes at each horizontal distance (HD) from the root. Starting with an HD of 0 at the root, the HD is decremented for left children and incremented for right children. As we"See full answer

    Software Engineer
    Data Structures & Algorithms
  • Meta logoAsked at Meta 
    1 answer

    "find total sum. assign that to rightsum traverse from left to right: keep updating left sum and right sum, when they match return the index. else if you reach end return -1 or not found"

    Rahul J. - "find total sum. assign that to rightsum traverse from left to right: keep updating left sum and right sum, when they match return the index. else if you reach end return -1 or not found"See full answer

    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    Add answer
    Software Engineer
    Behavioral
    +3 more
  • Meta logoAsked at Meta 
    Add answer
    Software Engineer
    Program Sense
    +2 more
  • Meta logoAsked at Meta 
    4 answers
    Video answer for 'Design an API for searching a folder.'
    Software Engineer
    System Design
    +1 more
  • Meta logoAsked at Meta 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    6 answers
    +3

    "def mergeTwoListsRecursive(l1, l2): if not l1 or not l2: return l1 or l2 if l1.val < l2.val: l1.next = mergeTwoListsRecursive(l1.next, l2) return l1 else: l2.next = mergeTwoListsRecursive(l1, l2.next) return l2 "

    Ramachandra N. - "def mergeTwoListsRecursive(l1, l2): if not l1 or not l2: return l1 or l2 if l1.val < l2.val: l1.next = mergeTwoListsRecursive(l1.next, l2) return l1 else: l2.next = mergeTwoListsRecursive(l1, l2.next) return l2 "See full answer

    Software Engineer
    Data Structures & Algorithms
    +5 more
  • Meta logoAsked at Meta 
    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
  • Meta logoAsked at Meta 
    1 answer

    "int[] sqSorted(int[] nums) { int i = 0, j = nums.length-1; int k = nums.length-1; int[] sqs = new int[nums.length]; while(i n1) { sqs[k--] = n2; j--; } else { sqs[k--] = n1; i++; } } for(int n: sqs) System.out.println(n); return sqs; }"

    Mahaboob P. - "int[] sqSorted(int[] nums) { int i = 0, j = nums.length-1; int k = nums.length-1; int[] sqs = new int[nums.length]; while(i n1) { sqs[k--] = n2; j--; } else { sqs[k--] = n1; i++; } } for(int n: sqs) System.out.println(n); return sqs; }"See full answer

    Software Engineer
    Data Structures & Algorithms
    +2 more
  • Meta logoAsked at Meta 
    1 answer
    Video answer for 'Print the left view of a binary tree.'

    "Initially I asked clarifying questions like whether the tree can be empty or not and asked the interviewer to explain what is meant by left view and the explanation for the sample inputs. Then I came up with the level order traversal approach where we visit each level in the binary tree at once using a queue and at each level print the value of the first node. Interviewer seemed satisfied with the approach and asked me to code it up. Finally gave the time and space complexity of the solution."

    Ds S. - "Initially I asked clarifying questions like whether the tree can be empty or not and asked the interviewer to explain what is meant by left view and the explanation for the sample inputs. Then I came up with the level order traversal approach where we visit each level in the binary tree at once using a queue and at each level print the value of the first node. Interviewer seemed satisfied with the approach and asked me to code it up. Finally gave the time and space complexity of the solution."See full answer

    Software Engineer
  • Meta logoAsked at Meta 
    7 answers
    +3

    "This could be done using two-pointer approach assuming array is sorted: left and right pointers. We need track two sums (left and right) as we move pointers. For moving pointers we will move left to right by 1 (increment) when right sum is greater. We will move right pointer to left by 1 (decrement) when left sum is greater. at some point we will either get the sum same and that's when we exit from the loop. 0-left will be one array and right-(n-1) will be another array. We are not going to mo"

    Bhaskar B. - "This could be done using two-pointer approach assuming array is sorted: left and right pointers. We need track two sums (left and right) as we move pointers. For moving pointers we will move left to right by 1 (increment) when right sum is greater. We will move right pointer to left by 1 (decrement) when left sum is greater. at some point we will either get the sum same and that's when we exit from the loop. 0-left will be one array and right-(n-1) will be another array. We are not going to mo"See full answer

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

    "Law is my passion. Traveling all over the world in 5 years"

    Moshe S. - "Law is my passion. Traveling all over the world in 5 years"See full answer

    Software Engineer
    Behavioral
    +4 more
  • Meta logoAsked at Meta 
    Add answer
    Software Engineer
    Data Structures & Algorithms
    +1 more
  • Meta logoAsked at Meta 
    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
Showing 81-100 of 126