# DIY: Snapshot Array

Solve the interview question "Snapshot Array" in this lesson.

We'll cover the following

## Problem statement

In this challenge, you have to implement a SnapshotArray with the following properties:

• SnapshotArray(length): This property initializes a data structure with length number of indexes. Initially, the value at each index is 0.

• set_value(idx,val): This property sets the value at a given index idx to val.

• snapshot(): This property takes no parameters and returns the snapid. snapid is the number of times that the snapshot() function was called minus 1.

• get_value(idx,snapid) function returns the value at the index idx with the given snapid.

## Input

The input will be two integers, that is an index and a value. We can set the value of the index idx,using the set_value(idx,val) function.

snapshotArr = SnapshotArray(3)
snapshotArr.set_value(0,4)
snapshotArr.snapshot()
snapshotArr.get_value(0,0)
snapshotArr.set_value(1,6)
snapshotArr.snapshot()
snapshotArr.get_value(1,1)


## Output

The output will be an integer. We will receive an output by calling the get_value(idx,snapid) function. For example, we will get the following output after calling the get_value(idx,snapid) function on the input given above:

4
6


## Coding exercise

Using the skeleton code given below, you need to implement the SnapshotArray class with the init, set_value(idx,value), snapshot(), and  get_value(idx,snap_id) functions:

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.