Round 1:
In memory Workbook
getCell(String cellId) // e.g. A1, AZ34 etc.
setCell(String cellId, ? value) //setCell(“A22”, “Box of Chocolate”)
setCell("A22","=A34+B65")
setCell("A34","=A23")
setCell("A23","=A22")
getDependencies("=A34+B65") => ["A34", "B65"]
// solved the getDependencies portion with topological sort, interviewer was ok with it.
Round 2:
Round 3:

Bubble shooter game, design and code
-- wrote some classes and methods to handle shooter and Board
-- DFS to update the board.
( Interviewer said that I missed base case for DFS but I said it depends on how we model the graph if it's Directed we would terminate since the final node will have no neighbors, Interviewer was like no way of knowing that, I said ok ).
Round 4:
[6, 3, 1, 4, 2, 5] → [2, 3, 1, 1, 1, 0]
P: [6, 3, 1, 4, 2, 5]
P: [6, 3, 1, 4, 2, 5] → Q: [2]
P: [6, 3, 4, 2, 5]
P: [6, 3, 4, 2, 5] → Q: [2, 3]
P: [6, 3, 4, 5]
P: [6, 3, 4, 5] → Q: [2, 3, 1]
Given Q reconstruct P, took some time to understand this question but it's simple
use the size of the queue and index in the queue to append to arrayList
list.add(qIdx,qSize)
follow up: validation of the Queue (last index can only be 0 since when the list is of size 1 we can only remove 0 idx, similarly last but 1 can be 1 or 0 and so on...)
-- did the validation using val>=size-idx and negative number checking etc.
( Interviewer did help me fix some minor validation bugs I was tired by this interview wasn't thinking good )
was later asked to do it in constant time, started with initial qSize as counter variable and did counter-1
My Googliness interviewer joined the call by then but I was almost there I believe.
Round 5:
Hope this helps someone, thanks.