Linkedin | Onsite | Stream of temperatures
Anonymous User
2108

There is an infinite stream of daily temperatures, design a data structure which allows to perform operations such as:

  • addTemperature(Date date, int temperature) // adds new temperature value at given day to the stream
  • updateTemperature(Date date, int newTemperature) // updates the temperature value at given day
  • removeTemperature(Date date) // removes the temperature for the given date from the stream
  • getLatestTemperature() // returns the latest temperature value from the stream
  • getMaxTemperature() // returns the max temperature seen so far

Example (using numbers instead of Date for simplicity):

// addTemperature(1, 10)
// getLatestTemperature() returns 10
// getMaxTemperature() returns 10

// addTemperature(2, 20)
// getLatestTemperature() returns 20
// getMaxTemperature() returns 20

// addTemperature(3, 15)
// getLatestTemperature() returns 15
// getMaxTemperature() returns 20

// updateTemperature(2, 11)
// getLatestTemperature() returns 15
// getMaxTemperature() returns 15

// removeTemperature(3)
// getLatestTemperature() returns 11
// getMaxTemperature() returns 11
Comments (8)