Spreadsheet Formulas with Dependency Updates

Quick Overview

Implement spreadsheet SET, SUM, and GET operations with live formulas, repeated-reference multiplicity, and efficient dependency updates.

Spreadsheet Formulas with Dependency Updates

Company: Amazon

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Onsite

# Spreadsheet Formulas with Dependency Updates Implement `spreadsheet_get_results(row_count: int, column_count: int, operations: list[list[str]]) -> list[int]`. The spreadsheet initially contains zeros. Process operations in order and return the value produced by every `GET`. ### Operation Format - `["SET", cell, value]` stores the signed decimal integer `value` in `cell` and removes any formula previously stored there. - `["SUM", cell, reference1, ...]` stores a dynamic sum formula in `cell`. Each reference is one cell such as `"B3"` or an inclusive rectangle such as `"A1:C2"`. - `["GET", cell]` reads the cell's current value. ### Input Domain - `1 <= row_count <= 1,000` and `1 <= column_count <= 26`. - Cell names use columns `A` through the configured final column and one-based rows. - `0 <= len(operations) <= 20,000`. - Every operation and reference is valid, and each `SUM` has at least one reference. - A `SUM` operation never creates a direct or indirect dependency cycle. ### Output Rules - Formulas remain live: changing a referenced cell changes all dependent results. - Each appearance of a cell contributes once, so overlapping or repeated references contribute repeatedly. - `SUM` and `SET` replace the target's prior literal or formula. - Preserve `GET` order; return an empty list when there are no `GET` operations. - All intermediate and returned values fit signed 64-bit integers. ### Constraints - Do not recompute every spreadsheet cell after each operation. - Exact values and dependency semantics are required. ### Examples #### Example 1 Input: `row_count = 3, column_count = 3, operations = [["SET","A1","2"],["SUM","C3","A1","A1:B2"],["GET","C3"],["SET","B2","3"],["GET","C3"]]` Output: `[4,7]` #### Example 2 Input: `row_count = 2, column_count = 2, operations = [["SUM","B2","A1:A2"],["SET","A1","5"],["GET","B2"],["SET","B2","4"],["SET","A2","7"],["GET","B2"]]` Output: `[5,4]` ```hint Store dependency multiplicity Expand formula references into source-cell counts, and either propagate value deltas through reverse dependencies or evaluate the acyclic graph with invalidation. ```

Overview: Implement spreadsheet SET, SUM, and GET operations with live formulas, repeated-reference multiplicity, and efficient dependency updates.

|Home/Coding & Algorithms/Amazon
Amazon logo
Amazon
Aug 20, 2026
mediumSoftware EngineerOnsiteCoding & Algorithms
3
0

Spreadsheet Formulas with Dependency Updates

Implement spreadsheet_get_results(row_count: int, column_count: int, operations: list[list[str]]) -> list[int].

The spreadsheet initially contains zeros. Process operations in order and return the value produced by every GET.

Operation Format

  • ["SET", cell, value] stores the signed decimal integer value in cell and removes any formula previously stored there.
  • ["SUM", cell, reference1, ...] stores a dynamic sum formula in cell . Each reference is one cell such as "B3" or an inclusive rectangle such as "A1:C2" .
  • ["GET", cell] reads the cell's current value.

Input Domain

  • 1 <= row_count <= 1,000 and 1 <= column_count <= 26 .
  • Cell names use columns A through the configured final column and one-based rows.
  • 0 <= len(operations) <= 20,000 .
  • Every operation and reference is valid, and each SUM has at least one reference.
  • A SUM operation never creates a direct or indirect dependency cycle.

Output Rules

  • Formulas remain live: changing a referenced cell changes all dependent results.
  • Each appearance of a cell contributes once, so overlapping or repeated references contribute repeatedly.
  • SUM and SET replace the target's prior literal or formula.
  • Preserve GET order; return an empty list when there are no GET operations.
  • All intermediate and returned values fit signed 64-bit integers.

Constraints

  • Do not recompute every spreadsheet cell after each operation.
  • Exact values and dependency semantics are required.

Examples

Example 1

Input: row_count = 3, column_count = 3, operations = [["SET","A1","2"],["SUM","C3","A1","A1:B2"],["GET","C3"],["SET","B2","3"],["GET","C3"]]

Output: [4,7]

Example 2

Input: row_count = 2, column_count = 2, operations = [["SUM","B2","A1:A2"],["SET","A1","5"],["GET","B2"],["SET","B2","4"],["SET","A2","7"],["GET","B2"]]

Output: [5,4]

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...