cs: add “2336. Smallest Number in Infinite Set”
Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
parent
4cca12685d
commit
37e383c221
1 changed files with 35 additions and 0 deletions
35
cs/smallest-number-in-infinite-set.cs
Normal file
35
cs/smallest-number-in-infinite-set.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
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);
|
||||||
|
*/
|
Loading…
Reference in a new issue