Google SDE Sheet: Interview Questions and Answers (original) (raw)
Last Updated : 27 Dec, 2025
Google is a global technology leader known for its work in search, cloud computing, artificial intelligence, and software innovation. Landing a job at Google is a goal for many engineers due to its challenging interviews and high technical standards. This Google Interview Preparation Sheet is designed to help you prepare effectively by covering commonly asked interview questions and key concepts.
Google SDE Hiring process
Google follows a structured and highly selective hiring process designed to assess strong problem-solving, coding ability, and cultural fit.
**1. Online Application
2. **Online Assessment
- 2 coding questions, 90 minutes duration
- Focus on Data Structures & Algorithms
**3. Technical Phone Screen
- A 30–60 minute technical interview conducted via Google Meet/Hangouts, led by an engineer or tech lead, focusing on coding and problem solving.
**4. Onsite Interviews
- Final stage with 4–6 rounds in a single day. Each round lasts ~45 minutes and includes:
- Coding and algorithmic problem solving, System design (more emphasis for experienced candidates)
**5. Behavioral / Googleyness Round
- Evaluation of cultural fit, collaboration, communication, and alignment with Google’s core values.
**Computer Science Concepts:
Google interviews strongly emphasize core Computer Science fundamentals, including:
**Data Structure & Algorithms
Array
An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together. Practice Problem
- Wave Array [Practice Problem]
- Subarray with given sum [Practice Problem]
- Majority Element [Practice Problem]
- Peak element [Practice Problem]
- Three Sum Closest [Practice Problem]
- Number of subarrays having sum exactly equal to k [Practice Problem]
- Kadane's Algorithm [Practice Problem]
- Find the element that appears once [Practice Problem]
- Find the minimum element in a sorted and rotated array [Practice Problem]
- Search a Word in a 2D Grid of characters [Practice Problem]
- Find Surpasser Count of each element in array [Practice Problem]
- Smallest Absolute Difference [Practice Problem]
- Sum of bit differences among all pairs [Practice Problem]
- Count More than n/k Occurrences [Practice Problem]
- Capacity To Ship Packages Within D Days [Practice Problem]
- Stock Buy and Sell - Multiple Transaction Allowed [Practice Problem]
- Maximum Product Subarray [Practice Problem]
- Rearrange Array Elements by Sign [Practice Problem]
- Minimum Swaps required to group all 1's together [Practice Problem]
**String
Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’.
- Valid Expression [Practice Problem]
- Multiply Large Numbers represented as Strings [Practice Problem]
- Minimum indexed character [Practice Problem]
- Find Maximum number possible by doing at-most K swaps [Practice Problem]
- Uncommon characters [Practice Problem]
- License Key Formatting [Practice Problem]
- Minimum insertions to form a palindrome [Practice Problem]
- Longest Repeating Subsequence [Practice Problem]
- Alien Dictionary [Practice Problem]
- Anagram Palindrome [Practice Problem]
- Longest Palindromic Substring [Practice Problem]
- Rabin-Karp Algorithm for Pattern Searching [Practice Problem]
- Longest prefix which is also suffix [Practice Problem**]
- Isomorphic Strings Check **[**Practice Problem**]
- Smallest window in a String containing all characters of other String **[**Practice Problem**]
- Longest Substring Without Repeating Characters **[**Practice Problem**]
**Linked List
A linked list is a linear data structure, in which the elements are not stored at contiguous memory locations.
- Nth node from end of linked list [Practice Problem]
- Reverse a linked list [Practice Problem]
- Detect loop in a linked list [Practice Problem]
- Delete a Node from linked list without head pointer [Practice Problem]
- Find length of Loop [Practice Problem]
- Insert in a Sorted List [Practice Problem]
- Pairwise Swap Nodes of a given Linked List [Practice Problem]
- Sort a linked list of 0s, 1s and 2s [Practice Problem]
- Reverse a sublist of a linked list [Practice Problem]
- Reverse a Doubly Linked List [Practice Problem]
- Swap k-th Nodes in Linked List [Practice Problem]
**Stack:
A stack is a linear data structure in which elements can be inserted and deleted only from one side of the list, called the top. A stack follows the LIFO (Last In First Out) principle.
- Delete middle element of a stack [Practice Problem]
- Stack Permutations [Practice Problem]
- Design a stack with operations on middle element [Practice Problem]
- Infix to Postfix Expression [Practice Problem]
**Queue
A queue is a linear data structure where elements are inserted at the rear and removed from the front, following the FIFO (First In, First Out) principle.
- The Celebrity Problem [Practice Problem]
- Maximum Rectangular Area in a Histogram [Practice Problem]
- Max rectangle [Practice Problem]
- Length of the longest valid substring [Practice Problem]
- Find the first circular tour that visits all petrol pumps [Practice Problem]
- LRU Cache Implementation [Practice Problem]
- Minimum time required to rot all oranges [Practice Problem]
- Sliding Window Maximum (Maximum of all subarrays of size k) [Practice Problem]
**Searching
Searching Algorithms are designed to check for an element or retrieve an element from any data structure where it is stored.
- Subarray with given sum [Practice Problem]
- Kth smallest element [Practice Problem]
- Find a peak element [Practice Problem]
- Search in a Rotated Array [Practice Problem]
- The Painter's Partition Problem-II [Practice Problem]
- Minimum number of times A has to be repeated such that B is a substring of it [Practice Problem]
- Koko Eating Bananas [Practice Problem]
- Next greater number set digits [Practice Problem]
- Median of 2 Sorted Arrays of Different Sizes [Practice Problem]
- Maximum no of 1's row [Practice Problem]
- Elements in the Range [Practice Problem]
- Search in a row wise and column wise sorted matrix [Practice Problem]
- Minimize Coin Removal for Bounded Pile Differences [Practice Problem]
**Sorting
A Sorting Algorithm is used to rearrange a given array or list of elements according to a comparison operator on the elements. The comparison operator is used to decide the new order of elements in the respective data structure.
- Floor in a Sorted Array [Practice Problem]
- Find all triplets with zero sum [Practice Problem]
- Count Inversions [Practice Problem]
- Sort an array of 0s, 1s and 2s [Practice Problem]
- Minimum Platforms [Practice Problem]
- Count the number of possible triangles [Practice Problem]
- At least two greater elements [Practice Problem]
- Maximum Intervals Overlap [Practice Problem]
- Next Greater Even Number [Practice Problem]
- Count Smaller elements [Practice Problem]
- Chocolate Distribution Problem [Practice Problem]
- Sort elements by frequency using STL [Practice Problem]
- Merge Two Sorted Arrays Without Extra Space [Practice Problem]
**Hash
Hashing is a technique or process of mapping keys, and values into the hash table by using a hash function. It is done for faster access to elements. The efficiency of mapping depends on the efficiency of the hash function used.
- Check if an array is subset of another array [Practice Problem]
- Count Subarrays with given XOR [Practice Problem]
- Smallest Range with Elements from k Sorted Lists [Practice Problem]
**Heap
A Heap is a special Tree-based data structure in which the tree is a complete binary tree. Heap and hash is an efficient implementation of a priority queue. The linear hash function monotonically maps keys to buckets, and each bucket is a heap.
- Count pairs with given sum [Practice Problem]
- Longest Consecutive Subsequence [Practice Problem]
- Triplet Sum in Array [Practice Problem]
- Largest subarray of 0's and 1's [Practice Problem]
- Find median in a stream [Practice Problem]
- Longest K unique characters substring [Practice Problem]
- Winner of an election [Practice Problem]
- Binary Heap Operations [Practice Problem]
- Kth element in Matrix [Practice Problem ]
- Game With String [Practice Problem]
- Rearrange characters [Practice Problem]
- Maximize elements using another array [Practice Problem]
- Huffman Coding [Practice Problem]
**Trees
A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value, a list of references to nodes (the “children”) :
- Print leaf nodes from preorder traversal of BST [Practice Problem]
- Height of Binary Tree [Practice Problem]
- ZigZag Tree Traversal [Practice Problem]
- Left View of Binary Tree [Practice Problem]
- Boundary Traversal of binary tree [Practice Problem]
- Lowest Common Ancestor in a Binary Tree [Practice Problem]
- Bottom View of Binary Tree [Practice Problem]
- Mirror Tree [Practice Problem]
- Sorted Link List to BST [Practice Problem]
- k-th smallest element in BST [Practice Problem]
- Merge two BST 's [Practice Problem]
- Maximum path sum from any node [Practice Problem]
- Maximum sum of Non-adjacent nodes [Practice Problem]
- Root to leaf paths sum [Practice Problem]
- Maximum Path Sum between 2 Leaf Nodes [Practice Problem]
- Count BST nodes that lie in a given range [Practice Problem]
- Connect Nodes at Same Level [Practice Problem]
- Balanced Binary Tree or Not [Practice Problem]
- Difference between sums of odd level and even level nodes of a Binary Tree [Practice Problem]
**Graph
A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.
- Dijkstra’s shortest path algorithm [Practice Problem]
- Find the number of islands [Practice Problem]
- Unit Area of largest region of 1's [Practice Problem]
- Word Boggle [Practice Problem]
- Prerequisite Tasks [Practice Problem]
- Flood fill Algorithm [Practice Problem]
- Number of Provinces [Practice Problem]
- Word Ladder I [Practice Problem]
- Knight Walk [Practice Problem]
- Course Schedule [Practice Problem]
- Clone Graph [Practice Problem]
- Detect cycle in an undirected graph [Practice Problem]
- Kruskal’s Minimum Spanning Tree (MST) Algorithm [Practice Problem]
**Dynamic Programming:
Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming.
- Trapping Rain Water [Practice Problem]
- Maximum Product Subarray [Practice Problem]
- Stock buy and sell [Practice Problem]
- Interleaved Strings [Practice Problem]
- Stickler Thief [Practice Problem]
- Smallest window in a string containing all the characters of another string [Practice Problem]
- Max rectangle [Practice Problem]
- Activity Selection [Practice Problem]
- Jump Game [Practice Problem]
- Knapsack with Duplicate Items [Practice Problem]
- Wildcard Pattern Matching [Practice Problem]
- Total Decoding Messages [Practice Problem]
- Matrix Chain Multiplication [Practice Problem]
- Count occurrences of a given word in a 2-d array [Practice Problem]
- Brackets in Matrix Chain Multiplication [Practice Problem]
- Burst Balloon to maximize coins [Practice Problem]
- Shortest Common Supersequence [Practice Problem]
- Coin Change - Count Ways to Make Sum [Practice Problem]
**Projects
- Thoroughly revise every project you have worked on, as interviewers often deep-dive into design choices, trade-offs, and edge cases.
- Mention only those technologies and features that you can confidently explain and defend.
- If you haven’t made a project then take an idea from GFG Projects and start working on it.
**System Design
- System Design focuses on designing scalable, reliable, and efficient system architectures that meet real-world requirements.
- Most top tech companies evaluate candidates on concepts like scalability, caching, load balancing, and data modeling.
- This specifically designed **System Design tutorial & **System Design Course will help you to learn and master System Design concepts in the most efficient way from basics to advanced level.
**Behavioral Skills
- Behavioral interviews assess communication, teamwork, decision-making, and leadership qualities.
- Many candidates fail this round despite strong technical skills due to unclear explanations or weak examples.
- Interviewers value clarity of thought, ownership, and real-life problem-solving ability over textbook answers.
**Read Also: