Google SDE Sheet

Last Updated : 25 Jul, 2026

Google coding interviews primarily assess a candidate's problem-solving ability, coding proficiency, and understanding of core computer science concepts. Most coding rounds focus on solving optimized Data Structures and Algorithms (DSA) problems while writing clean, efficient code and explaining the logic, time complexity, and space complexity.

  • Focus Areas: Arrays, Strings, Linked Lists, Stacks, Queues, Trees, Binary Search Trees (BST), Graphs, Heaps, Hashing, Recursion, Backtracking, Dynamic Programming (DP), Greedy Algorithms, Searching & Sorting, and Bit Manipulation.
  • Interview Expectation: Write optimized and readable code, justify your approach with complexity analysis, handle edge cases, and communicate your thought process clearly throughout the interview.

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

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’.

Linked List

A Linked List is a linear data structure, in which the elements are not stored at contiguous memory locations.

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.

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.

Searching

Searching Algorithms are designed to check for an element or retrieve an element from any data structure where it is stored.

Sorting

A Sorting Algorithms 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.

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.

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.

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”) :

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.

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.

Comment