题目

现有一个包含所有正整数集合 [1, 2, 3, 4, 5, ...] 。

实现 SmallestInfiniteSet 类:

解题思路

  1. 整数是无限的所以,需要存储的时被移除数据
  2. 通过使用Map来存储移除的数据;
  3. 移除无限集中的最小整数即Map中不存在最小整数;
  4. 添加数据到无限集中,即从Map删除该数据。

代码展示

class SmallestInfiniteSet {
    Map<Integer,Integer&gt; data = null;
    public SmallestInfiniteSet() {
        data = new TreeMap<&gt;();
    }

    public int popSmallest() {
        int index = 1;
        while (index <= data.size()){
            if(!data.containsKey(index)){
                break;
            }
            index++;
        }
        data.put(index, index);
        return index;
    }

    public void addBack(int num) {
        data.remove(num);
    }
}

原文地址:https://blog.csdn.net/qq_45794129/article/details/134690666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12737.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注