// 2024/08/28
// interviewer: Jay
// interviewee: Ted
### Q1 ----------------------------------
start time: 14:34
1 .. n bulbs -> all off
return number of bulbs on(int)
n = 3 => 1
n = 5 => 2
n = 7 => 2
n = 9 => 3
1 2 3 4 5 6 7 8 9
- - - - - - -
1: + + + + + + +
2: + - + - + - +
3: + - - - + + +
4: + - - + + + +
5: + - - + - + +
6: + - - + - - +
7: + - - + - - - - +
TC: O(1)
SC: O(1)
```cpp!
int lightBulbsCnt(int bulbs) {
return sqrt(bulbs);
}
```
finish time: 14:47
### Q2 ----------------------------------
start time: 14:47
n, vector<vector<int>> edges
3, edges: {{0, 1}, {0, 2}, {2, 3}}
0 0
/ \
2 1 1
/
3 2
graph: [0: [1, 2], 1: [], 2: [3]]
q: [3]
height = 3
TC: O(edges.length)
SC: O(edges.length)
```cpp!
int treeHeight(int n, vector<vector<int>> edges) {
vector<vector<int>> graph(n);
for (vector<int>& edge) {
graph[edge[0]].push(edge[1]);
}
queue<int> q;
q.push(0);
int height = -1;
while(!q.empty()) {
height++;
int size = q.size();
for (int i = 0; i < size; i++) {
int node = q.front();
q.pop();
for (int& nextLevelNode: graph[node]) {
q.push(nextLevelNode);
}
}
}
return height;
}
```
finish time: 15:02
https://atcoder.jp/contests/dp/tasks/dp_c
### Q3 ----------------------------------
start time: 15:02
N, vector<vector<int>>
3, {{10, 20, 30}, {40, 5, 70}, {30, 8, 10}}
sol1: brute force: TC: O(2^n)
{10, 20, 30}, {100, 99, 0}, {5, 1, 0}
30 + 99 + 5
sol2:
3, {{10, 20, 30}, {100, 99, 0}, {5, 1, 0}}
highCnt: [134, 131, 130]
tmp0: 130
tmp1: 129
tmp3: 20
return -> int
TC: O(days)
SC: O(1)
```cpp!
int maxHigh(int days, vector<vector<int>> activities){
vector<int> highCnt(3, 0);
highCnt[0] = activities[0][0];
highCnt[1] = activities[0][1];
highCnt[2] = activities[0][2];
for (int i = 1; i < activities.size(); i++) {
int tmp0 = highCnt[0], tmp1 = highCnt[1], tmp2 = highCnt[2];
highCnt[0] = max(tmp1, tmp2) + activities[i][0];
highCnt[1] = max(tmp0, tmp2) + activities[i][1];
highCnt[2] = max(tmp0, tmp1) + activities[i][2];
}
return max({highCnt[0], highCnt[1]}, highCnt[1]);
}
```
finish time: 15:44
### feedback
1. Q1 Q2 came up with a solution fast, good coding.
2. Q3 solved after giving hints, but overall pretty good.