J'ai postulé en ligne. J'ai passé un entretien chez TikTok
Entretien
It was nice. The first 7 minutes were introduction and then half hour for coding question. The interviewer was nice and gave the one hint I had needed to do the question. Overall good experience.
Questions d'entretien [1]
Question 1
We have a m x n 2D grid initialized with three possible values:
-1 - An obstacle.
0 - An exit.
INF - An empty room. We use the value 2^31 - 1 = 2147483647 to represent INF as you may assume that the distance to an exit is less than 2147483647.
We want to fill each empty room with the distance to its nearest exit. If it is impossible to reach an exit, it should be filled with INF.
Example:
Given the 2D grid:
INF -1 0 INF
INF INF INF -1
INF -1 INF -1
0 -1 INF INF
We expect the output 2D grid as:
3 -1 0 1
2 2 1 -1
1 -1 2 -1
0 -1 3 4
J'ai passé un entretien chez TikTok (San Francisco, CA)
Entretien
OA - 1 arrays Medium, 1 Trie Hard. I had 45 minutes to complete that. I was able to do the medium in about 15-20 minutes but I am not that great with trie ds so I was not able to finish.
Four Round Process
Phone Interview with Human Resources
Coding Round; 1 DSA Leetcode Medium Q
Coding Round: 2 DSA Leetcode Medium Q
Manager Round: System Design Q and behavioural Q
It took about four weeks from application to offer, longer than I initially expected. The initial phone screen was straightforward, covering my resume and some basic algorithms. Then came the technical rounds, which were challenging. One question on minimum window substrings had me diving into a sliding-window approach using pointers and hashmaps. Funny enough, I recognized it mid-round as something I’d practiced on PracHub just days before. After a final system design discussion, I received the offer and happily accepted.
Questions d'entretien [1]
Question 1
Given two strings s and t, return the minimum window substring of s that contains every character of t including duplicates, or an empty string if no such window exists. Walk through the sliding-window approach using two pointers and a character-frequency hashmap, analyze the O(|s| + |t|) time complexity, and discuss how to adapt it when t contains characters not present in s or when s arrives as a stream that cannot be fully buffered.