其他分享
首页 > 其他分享> > 6113. 无限集中的最小数字

6113. 无限集中的最小数字

作者:互联网

 

 1 class SmallestInfiniteSet {
 2     private int min; // 最小值
 3     private ArrayList<Integer> blackList; // 黑名单
 4     public SmallestInfiniteSet() {
 5         this.min = 1;
 6         this.blackList = new ArrayList<Integer>();
 7     }
 8     
 9     // 移除返回无限集中的最小值
10     public int popSmallest() {
11         int res = min;
12         blackList.add(min); // 
13         while(blackList.contains(min+1)){
14             min++;
15         }
16         min +=1;
17         return res;
18     }
19     
20     public void addBack(int num) {
21         if(num<min){
22             min = num;
23         }
24         if(blackList.contains(num)){
25             // blackList.remove(num);
26             blackList.remove(new Integer(num)); //找到第一次出现的元素并删除
27         }
28     }
29 }
30 /**
31 1、用for循环遍历List删除元素时,需要注意索引会左移的问题。
32 2、List删除元素时,为避免陷阱,建议使用迭代器iterator的remove方式。
33 3、List删除元素时,默认按索引删除,而不是对象删除。
34  */
35 /**
36  * Your SmallestInfiniteSet object will be instantiated and called as such:
37  * SmallestInfiniteSet obj = new SmallestInfiniteSet();
38  * int param_1 = obj.popSmallest();
39  * obj.addBack(num);
40  */

 

标签:删除,min,int,最小,6113,blackList,无限,public,SmallestInfiniteSet
来源: https://www.cnblogs.com/jsuxk/p/16463392.html