LeetCode/cs/smallest-number-in-infinite-set.cs
Matej Focko 37e383c221
cs: add “2336. Smallest Number in Infinite Set”
Signed-off-by: Matej Focko <mfocko@redhat.com>
2024-01-07 20:13:10 +01:00

35 lines
753 B
C#

public class SmallestInfiniteSet {
private SortedSet<int> smaller;
private int nextInfinite;
public SmallestInfiniteSet() {
smaller = new SortedSet<int>();
nextInfinite = 1;
}
public int PopSmallest() {
var m = smaller.Min;
if (m != 0) {
smaller.Remove(m);
return m;
}
++nextInfinite;
return nextInfinite - 1;
}
public void AddBack(int num) {
if (num >= nextInfinite) {
return;
}
smaller.Add(num);
}
}
/**
* Your SmallestInfiniteSet object will be instantiated and called as such:
* SmallestInfiniteSet obj = new SmallestInfiniteSet();
* int param_1 = obj.PopSmallest();
* obj.AddBack(num);
*/