# [Solution] Longest Uploaded Prefix solution leetcode

Longest Uploaded Prefix solution leetcode – You are given a stream of `n` videos, each represented by a distinct number from `1` to `n` that you need to “upload” to a server. You need to implement a data structure that calculates the length of the longest uploaded prefix at various points in the upload process.

## [Solution] Longest Uploaded Prefix solution leetcode

We consider `i` to be an uploaded prefix if all videos in the range `1` to `i` (inclusive) have been uploaded to the server. The longest uploaded prefix is the maximum value of `i` that satisfies this definition.

Implement the `LUPrefix `class:

• `LUPrefix(int n)` Initializes the object for a stream of `n` videos.
• `void upload(int video)` Uploads `video` to the server.
• `int longest()` Returns the length of the longest uploaded prefix defined above.

## [Solution] Longest Uploaded Prefix solution leetcode

```Input
[[4], [3], [], [1], [], [2], []]
Output
[null, null, 0, null, 1, null, 3]

Explanation
LUPrefix server = new LUPrefix(4);   // Initialize a stream of 4 videos.
server.longest();                    // Since video 1 has not been uploaded yet, there is no prefix.
// So, we return 0.
server.longest();                    // The prefix [1] is the longest uploaded prefix, so we return 1.
server.longest();                    // The prefix [1,2,3] is the longest uploaded prefix, so we return 3.
```

## [Solution] Longest Uploaded Prefix solution leetcode

• `1 <= n <= 105`
• `1 <= video <= 105`
• All values of `video` are distinct.
• At most `2 * 105` calls in total will be made to `upload` and `longest`.
• At least one call will be made to `longest`.